動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2509(ビルド19231.20194クイック実行)
「excel vba 現在の行」
といった検索でアクセスがありました。
ここで「現在の行」と表現されているのは、以下の2つが考えられます。
- 現在の行番号
- 現在の行を表すオブジェクト
現在の行を取得するサンプルマクロ
現在の行番号を取得したいのなら、以下のExcelマクロが参考になるでしょう。
Sub 現在の行番号を取得する()
Dim row_num As Long
row_num = ActiveCell.Row
MsgBox row_num
End Sub
Dim row_num As Long
row_num = ActiveCell.Row
MsgBox row_num
End Sub
一方、現在の行を表すオブジェクトを取得したい場合は、以下のExcelマクロです。
Sub 現在の行を表すオブジェクトを取得する()
Dim row_rng As Range
Set row_rng = ActiveCell.EntireRow
row_rng.Select
MsgBox row_rng.Row
End Sub
Dim row_rng As Range
Set row_rng = ActiveCell.EntireRow
row_rng.Select
MsgBox row_rng.Row
End Sub
2種類のプロパティ
拙著『いちばんやさしいExcel VBAの教本』の、「Lesson 52. プロパティは2種類あることを知っておきましょう」に、Excel VBAのプロパティには単なるデータを返すものと、オブジェクトを返すものの2種類があることを書きました。
上記の現在の行番号を取得するマクロで使用しているRange.Rowプロパティが、
row_num = ActiveCell.Row
セルの行番号を表す整数(単なるデータ)を返すプロパティです。
また、現在の行を表すオブジェクトを取得するマクロで使っている、Range.EntireRowは、
Set row_rng = ActiveCell.EntireRow
行全体を表すRangeオブジェクトを返すプロパティです。
Range.EntireRowの戻り値はRangeオブジェクトですから、Range.Selectメソッドで選択したり、
row_rng.Select
Range.Rowプロパティで行番号を取得できます。
MsgBox row_rng.Row
[スポンサードリンク]
Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » VBAで現在の行を取得する

『インストラクターのネタ帳』では、2003年10月からMicrosoft Officeの使い方などを紹介し続けています。










