Excel VBAを使用して、ワークシート上で最終行を取得する方法についてのスニペットをご紹介します。
Sub 最終行を取得する()
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox "A列の最終行は「" & LastRow & "」行目"
End Sub
このサンプルコードでは、A列の最終行を取得し、メッセージボックスで表示しています。
最終行を取得するコード解説
Cells(Rows.Count, 1).End(xlUp).Row
この部分はA列の最終行を取得するためのコードです。各要素を分解してみましょう。
1. Rows.Count
Rows.Count
はExcelの最大行数である104万8576行目を指します。つまり、Cells(Rows.Count, 1)
はCells(1048576, "A")
やRange("A1048576")
と同じく、A列の最終行を指定しています。
💡 以下に、一般的なExcelの各バージョンにおける最大行数を示します。
2. End(xlUp)
End(xlUp)
はキーボードの「Ctrl+↑」に相当します。すなわち、指定したセルから上方向に非空のセルを検索し、そのセルを返します。このケースではA列の最下部から上方向に検索しています。
3. Row
最終的に、Row
は検索されたセルの行数を取得します。
この手法を使用すると、サンプルコードを実行することでA列の最終行を取得できます。
まとめ
Excel VBAを使用して最終行を取得する方法は、Cells(Rows.Count, 列番号).End(xlUp).Row
といった形式を使用することで可能です。これらの各要素を分解すると以下の通りです。
Rows.Count
Excelの最大行数End(xlUp)
「Ctrl+↑」Row
セルの行数