Rowプロパティ、Columnプロパティ
セルの行番号を取得するにはRowプロパティを使用し、列番号を取得にはColumnプロパティを使用します。
どちらも対象のセルをRangeオブジェクトで指定します。
構文
1 2 |
Rangeオブジェクト.Row Rangeオブジェクト.Column |
Rangeオブジェクトには単一セルとセル範囲のどちらも指定することができますが、セル範囲の場合は一番左上のセルの行番号、列番号を取得します。
Rangeオブジェクトの種類には、ActiveCell、Selection、Range(“A1”)形式、Cells(1,1)形式、などがありますがいずれも利用可能です。
RowプロパティもColumnプロパティも、Long型で行番号、列番号を返却します。
注意点
Rangeオブジェクトで単一セルではなくセル範囲を選択した場合は、セル範囲で一番左上のセルの行番号、列番号を取得します。
セル範囲の途中や最後のセルを参照したい場合はRow、Columnプロパティのみでは取得できないため別途コードを書く必要があります。(後述)
サンプルコード
単一セルの行番号と列番号を取得
A2セルの行番号と列番号を取得するサンプルです。
1 2 3 4 5 6 7 |
Sub RowColumnTest1() Dim r As Range Set r = Range("A2") Debug.Print r.Row Debug.Print r.Column End Sub |
実行結果
2
1
セル範囲の行番号と列番号を取得
A2からC5セル範囲の行番号と列番号を取得するサンプルです。
実行結果はセル範囲先頭のA2セルの行番号と列番号を取得します。
1 2 3 4 5 6 7 |
Sub RowColumnTest2() Dim r As Range Set r = Range("A2:C5") Debug.Print r.Row Debug.Print r.Column End Sub |
実行結果
2
1
セル範囲の全ての行番号と列番号を取得
Row、Columnはセル範囲の先頭セルしか対象になりません。
セル範囲の各セルの行番号、列番号を取得する場合は以下のようなコードを書きます。
1 2 3 4 5 6 7 8 9 10 11 |
Sub RowColumnTest3() Dim r As Range Dim rCell As Range Set r = Range("A2:B3") For Each rCell In r Debug.Print rCell.Row Debug.Print rCell.Column Next End Sub |
実行結果
2
1
2
2
3
1
3
2