伊田生活ブログのロゴ
HOME  >  勉強
カテゴリー : 勉強 - プログラミング
•最終行 •Excel •VBA •マクロ •効率化



公開日:

最終行の行番号を取得するVBAサンプルコード(エクセル)


Excelでデータを集計するとき、最終行の行番号を取得できると、いろいろと便利です。

この記事では、最終行の行番号を返す Function のサンプルコードをご紹介します。

対象データ

下図のようなデータがあるとします。

image 1

[ 画像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
実行結果

Sub a() を実行すると、下図のようなダイアログが表示されます。

image 2

[ 画像2. ダイアログ ]

 

”9”という文字が表示されていますが、これはB列の9行目が、最終行(データがある最後の行)ということを意味しています。

(なお、この記事では LibreOffice を利用しています。)

コード説明

Function retLastRowNum() は、「”空白セルが現れる直前のセル”の行番号を返す」Function です。この Function は、空白セルが現れるまで、Do While というループで、セルを上から下に、順番に見て行きます。

空白セルを発見すると、ループを中止します。

注意事項

上述の Function retLastRowNum() は、「B列における最初の空白セルの直前の行番号」を返す関数です。

下図は、6行目が空白になっているデータです。このデータの場合、この Function は、”9”ではなく、”5”を返すので、注意が必要です。

image 3

[ 画像3. ”9”ではなく”5” ]