公開日:
最終行の行番号を取得するVBAサンプルコード(エクセル)
Excelでデータを集計するとき、最終行の行番号を取得できると、いろいろと便利です。
この記事では、最終行の行番号を返す Function のサンプルコードをご紹介します。
対象データ下図のようなデータがあるとします。
[ 画像1. 対象データ ]
このデータの、B列の最終行の行番号を取得することを考えます。
サンプルコード
Sub a()
MsgBox (retLastRowNum)
End Sub
Function retLastRowNum()
Dim r As Integer
r = 1
Do While Cells(r + 1, 2) <> ""
 r = r + 1
Loop
retLastRowNum = r
End Function
実行結果MsgBox (retLastRowNum)
End Sub
Function retLastRowNum()
Dim r As Integer
r = 1
Do While Cells(r + 1, 2) <> ""
 r = r + 1
Loop
retLastRowNum = r
End Function
Sub a()
を実行すると、下図のようなダイアログが表示されます。
[ 画像2. ダイアログ ]
”9”という文字が表示されていますが、これはB列の9行目が、最終行(データがある最後の行)ということを意味しています。
(なお、この記事では LibreOffice を利用しています。)
コード説明
Function retLastRowNum()
は、「”空白セルが現れる直前のセル”の行番号を返す」Function です。この Function は、空白セルが現れるまで、Do While
というループで、セルを上から下に、順番に見て行きます。
空白セルを発見すると、ループを中止します。
注意事項
上述の Function retLastRowNum()
は、「B列における最初の空白セルの直前の行番号」を返す関数です。
下図は、6行目が空白になっているデータです。このデータの場合、この Function は、”9”ではなく、”5”を返すので、注意が必要です。
[ 画像3. ”9”ではなく”5” ]