ITのえんぴつ

Google Blockly開発者ツールやIT・プログラミングを研究して発信するブログ

Excel VBAスニペット:最終行を取得する

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.CountExcelの最大行数である104万8576行目を指します。つまり、Cells(Rows.Count, 1)Cells(1048576, "A")Range("A1048576")と同じく、A列の最終行を指定しています。

💡 以下に、一般的なExcelの各バージョンにおける最大行数を示します。

  • Excel 2003以前: 65,536行
  • Excel 2007以降 (Excel 2007, 2010, 2013, 2016, 2019): 1,048,576行

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 セルの行数