まりふのひと

最終行、最終列を取得するExcel VBAのコード

§A列の最終行を取得する
  • 空白セルが無い場合 ‥‥ Ctrl+↓を使う
    Range("A1").End(xlDown).Row
  • 空白セルがある場合 ‥‥ 最後の行から Ctrl+↑ する
    Cells(Rows.Count, 1).End(xlUp).Row
§1行目の最終列を取得する
  • 空白セルが無い場合 ‥‥ Ctrl+→を使う
    Range("A1").End(xlToRight).Column
  • 空白セルがある場合 ‥‥ 最後の列から Ctrl+← する
    Cells(1, Columns.Count).End(xlToLeft).Column
§アドレスを取得するには
  • 上記 Row または Column を Address とすればよい。
    Range("A1").End(xlDown).Address
  • 但し、絶対番地が返るので、相対番地にするには "$" を取る必要がある。
     Replace 関数を使った例
    Replace(Range("A1").End(xlDown).Address, "$", "")
§Ctrl+End
  1. 表の右下隅のセルの行
    ActiveCell.SpecialCells(xlLastCell).Row
  2. 表の右下隅のセルの列
    ActiveCell.SpecialCells(xlLastCell).Column
  3. 表の右下隅のセルのアドレス
    Range("A1").SpecialCells(xlLastCell).Address
  • デバッグウィンドウで動作を確認した。
  • ActiveCell の代わりに、Range("A1")でも動作する。(No.3)
     A1 はダミーで、表外であっても問題ない。アクティブシートの意味だろう...
§Ctrl+End を使った表の選択例

表の右下隅のセル(Ctrl+End のアドレス)が J15 と仮定する。

  1. A1〜J15 を選択する ‥‥ セル A1 をクリックし、Ctrl+End
    Range("A1", ActiveCell.SpecialCells(xlLastCell)).Select
  2. B2〜J15 を選択する ‥‥ セル B2 をクリックし、Ctrl+End
    Range("B2", ActiveCell.SpecialCells(xlLastCell)).Select
§Excel の最大値
  • 最大行数
    MaxRow = Rows.Count
  • 最大列数
    MaxCol = Columns.Count