更新日:、 作成日:

VBA 行番号や行数を取得する

はじめに

Excel VBA マクロで行番号や行数を取得する方法を紹介します。

Range("A2").Row メソッドから、セル「A2」の行番号を取得できます。

Range.Rows.Count プロパティから、セルの範囲の行数を取得できます。

Range.Row + Range.Rows.Count - 1 から、セルの範囲の最終行番号を取得できます。

行番号から行を取得するには「行を取得する」をご覧ください。
列番号を取得するには「列番号または列名を取得する」をご覧ください。

行番号を取得する

Range の引数にセル名を指定すると、そのセルの行番号を取得できます。

セル「A1」の行番号を取得するには Range("A1").Row を入力します。

Dim l As Long
l = Range("A1").Row ' 1
l = Range("A3").Row ' 3
Debug.Print(l)

アクティブセル

アクティブセルの行番号を取得するには ActiveCell を入力します。

Dim l As Long
l = ActiveCell.Row
Debug.Print(l)

アクティブセルとは、フォーカスがあるセルのことです。

選択セル

選択しているセルの行番号を取得するには Selection を入力します。範囲選択しているときは、一番上の行番号を取得します。

Dim l As Long
l = Selection.Row
Debug.Print(l)

セルの範囲の行番号や行数を取得する

セルの範囲「B2」~「D4」の行番号を取得するには Range("B2:D4").Row を入力します。その範囲の一番上の行番号を取得します。

行数を取得するには Range("B2:D4").Rows.Count を入力します。

Dim l As Long
l = Range("B2:D4").Row        ' 2
l = Range("B2:D4").Rows.Count ' 3
Debug.Print(l)

最終行番号を取得する

セルの範囲「B2」~「D4」の最終行番号を取得するには Range.Row + Range.Rows.Count - 1 または Range.Rows(Range.Rows.Count).Row のように入力します。

Dim c As Range
Set c = Range("B2:D4")

Dim l As Long
l = c.Row + c.Rows.Count - 1 ' 4
l = c.Rows(c.Rows.Count).Row ' 4
Debug.Print(l)

Range.CurrentRegionUsedRange を使用して、データの範囲やシート全体の最終行番号を取得できます。

詳しくは「最終行を取得する」をご覧ください。