【VBA】最終行を取得する

最終行を取得する方法を
記載します!

最終行の取得方法は
 ①上から下へ見ていく方法
 ②下から上へ見ていく方法
の2つがあります!

基本は「①上から下へ見ていく方法」を
使用すれば良いです!

「①上から下へ見ていく方法」で上手くいかない場合に、
「②下から上へ見ていく方法」を使用します!

PR

前提

ここでは例として、
 ・シート「sample」のB列「社員名」の
 ・最終行(10行目)
を取得します。

最終行は10行目
最終行は10行目
PR

最終行を取得する(①上から下へ見ていく)

起点となるセル(開始と開始)は決まっていることが多いと思います。

ここでは起点をセル「B2」にするために、
 ・開始を定数「START_ROW」で「2」
 ・開始を定数「START_COLUMN」で「2」
と定義します。

Option Explicit

Sub sample()

    '開始行と開始列を指定
    Const START_ROW As Long = 2
    Const START_COLUMN As Long = 2
    
    Dim endRow As Long
    
    '最終行を取得する(上から下へ見ていく)
    endRow = Worksheets("sample").Cells(START_ROW, START_COLUMN).End(xlDown).Row
    
    MsgBox ("最終行は『" & endRow & "』行目です!")
    
End Sub

「End」プロパティの引数に「xlDown」を指定します。

上記の処理は
 ・「Worksheets(“シート名”).Cells(”XXX”)」により「Rangeオブジェクト」を取得して、
 ・「Rangeオブジェクト」の「End」プロパティによりさらに「Rangeオブジェクト」を取得して、
 ・「Rangeオブジェクト」の「Row」プロパティにより「行番号(=最終行)」を取得する

という流れです。


上記を実行すると、最終行が取得できたことを確認できます。

「①上から下へ見ていく方法」で最終行を取得
「①上から下へ見ていく方法」で最終行を取得
PR

最終行を取得する(②下から上へ見ていく)

空白行がある場合、「上から下へ見ていく方法」では最終行を取得することが出来ません。

最終行は10行目だが、空白のせいで「①上から下へ見ていく方法」では上手く最終行を取得できない
最終行は10行目だが、空白のせいで「①上から下へ見ていく方法」では上手く最終行を取得できない


空白行がある場合は、「下から上へ見ていく方法」で最終行を取得します。

「開始列」は同様に定数「START_COLUMN」で「2」と定義します。

Option Explicit

Sub sample()

    '開始列を指定
    Const START_COLUMN As Long = 2
    
    Dim endRow As Long
    
    '最終行を取得する(下から上へ見ていく)
    endRow = Worksheets("sample").Cells(Rows.COUNT, START_COLUMN).End(xlUp).Row
    
    MsgBox ("最終行は『" & endRow & "』行目です!")
    
End Sub

「End」プロパティの引数に「xlUp」を指定します。

「Rows.COUNT」は最大行数(=1,048,576)を示します。


上記を実行すると、最終行が取得できたことを確認できます。

「②下から上へ見ていく方法」で最終行を取得
「②下から上へ見ていく方法」で最終行を取得

ここでの「下から~」とは「最大行数(=1,048,576)から~」という意味です。

PR

参考①

以下の記事で、最終を取得する方法を紹介しています。
併せてご確認ください。

PR

参考②

上記のVBAコード使用した以下の詳細は、公式サイトをご確認ください。

●「Worksheets(“シート名”).Cells(”XXX”)」



●「Rangeオブジェクト」の「End」プロパティ


●「Rangeオブジェクト」の「Row」プロパティ