Home » ExcelVBA Rangeオブジェクト » VBAでセルの行番号を取得したい

対象:Excel2007, Excel2010, Excel2013

「excel2010 vba 行番号の取得」
「エクセル マクロ 行番号取得」
「VBA メッセージボックスに何行目かを表示」
といった検索で、このサイト『インストラクターのネタ帳』へのアクセスが時折あります。

何らかのセルの行番号を取得・表示するExcel VBAのコードを探している方による検索です。

行番号はRange.Rowで取得

Excel VBAで、行番号を取得するには、Rangeオブジェクトに用意されているRowプロパティを使います。

行番号を取得する

オブジェクトブラウザーで確認すると、上図のとおりRange.RowプロパティはLong型のデータを返すことがわかります。

[スポンサードリンク]

アクティブセルの行番号を取得するサンプル

以下のSubプロシージャを実行すると、アクティブなセルの行番号がメッセージボックスに表示されます。

Sub アクティブセルの行番号を取得する()
 MsgBox ActiveCell.Row
End Sub

例えば、
A1セルがアクティブな状態で実行すると「1」
G7セルがアクティブな状態で実行すると「7」
がそれぞれ表示されます。

「ActiveCell.Row」というコードは、ActiveCellプロパティでアクティブなセルを表すRangeオブジェクトを取得して、取得したRangeオブジェクトのRowプロパティで行番号を取得しています。このようなコード「ActiveCell.Row」で取得した、アクティブセルの行番号を、VBAのMsgBox関数で表示しています。

選択セルの行番号を取得するサンプル

以下のSubプロシージャを実行すると、選択されているすべてのセルの行番号が、イミディエイトウィンドウに出力されます。

Sub 選択セルの行番号を取得する()
 Dim rng As Range
 For Each rng In Selection
  Debug.Print rng.Row
 Next
End Sub

選択されているセルに対してFor Each~Nextループを回して、
  For Each rng In Selection

Range.Rowプロパティで取得した行番号を、イミディエイトウィンドウに出力しています。
  Debug.Print rng.Row

最終行番号を取得する場合もRange.Row

Range("A1").End(xlDown).Rowの場合

A1セルから隙間なくデータが入力されているときに最終行番号を取得してメッセージボックスに表示する例として
  Range("A1").End(xlDown).Row
というコードをご紹介しています。これも考え方は同じです。

A1セルを表すRangeオブジェクトを、Rangeプロパティの引数に「A1」を指定することで取得して、そのA1セルから下方向の終端セルをEndプロパティの引数に定数「xlDown」を指定することで取得して、

行番号を取得する

取得したRangeオブジェクトのRowプロパティで行番号を取得しています。

Cells(Rows.Count, 1).End(xlUp).Rowの場合

A列にデータ入力されているけれど途中に空白セルがあるときに最終行番号を取得してメッセージボックスに表示するサンプルとして
  Cells(Rows.Count, 1).End(xlUp).Row
というコードをご紹介しています。これも考え方は同じです。

A列の一番下のセル(.xlsxならA1048576セル・2003までの.xls形式ならA65536)を表すRangeオブジェクトを、オブジェクト式「Cells(Rows.Count, 1)」で取得して、取得したRangeオブジェクトの上方向の終端セルを表すRangeオブジェクトをEndプロパティの引数に定数「xlUp」を指定することで取得して、取得したRangeオブジェクトのRowプロパティで行番号を取得しています。

Excel VBAで行番号を取得するには、Rangeオブジェクトに用意されているRowプロパティを使ってください。

最終更新日時:2020-09-14 08:23

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » VBAでセルの行番号を取得したい

TrackBack:9

TrackBack URL
FindメソッドでみつかったRangeの行番号を取得するExcel VBAのコード from インストラクターのネタ帳
RangeオブジェクトのFindメソッドを使って見つかったセルの行番号を取得する、Excel(エクセル)VBA(Visual Basic for Appl...
For Each~Next文で処理しようとしているセルの行番号・列番号を確認する from インストラクターのネタ帳
Excel(エクセル)マクロを作成している途中で、For Each~Nextループで、処理しようとしているセルの行番号・列番号を確認する方法をご紹介しています。
ListObject・テーブルの見出し行を取得するExcelマクロ from インストラクターのネタ帳
Excel(エクセル)でテーブルの見出し行を取得するマクロをご紹介。ListObject.HeaderRowRangeプロパティで返されるのがRangeオ...
ListObject・テーブルの1行目を取得するExcelマクロ from インストラクターのネタ帳
Excel(エクセル)でテーブル(ListObject)のデータの1行目を取得するVBA(Visual Basic for Applications)のサ...
Findで見つけた他の列のセルを選択するExcelマクロ from インストラクターのネタ帳
Range.Findメソッドで検索を行って、みつかったセルの同じ行のA列のセルを選択するExcel(エクセル)マクロをご紹介しています。
VBAでアクティブセルの位置を取得する from インストラクターのネタ帳
アクティブセルの、行番号・列番号・セル番地を取得するExcel VBAのコードをご紹介しています。
Range.Addressから行番号を取得する from インストラクターのネタ帳
Range.Rowプロパティでセルの行番号を取得するのが簡単ですが、Range.Addressプロパティから強引に行番号を取得することもできます。
Rowsプロパティでアクティブセルの上や下に行を挿入する from インストラクターのネタ帳
Rowsプロパティを使ってアクティブセルの上や下に行を挿入するExcel VBAのSubプロシージャをご紹介しています。
TopLeftCellの行番号・列番号 from インストラクターのネタ帳
Shapeなどの左上のセルを表すRangeオブジェクト、行番号・列番号を取得するオブジェクト式を解説しています。

Home » ExcelVBA Rangeオブジェクト » VBAでセルの行番号を取得したい

「ExcelVBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.