ExcelのVBAでRange("B1")のようにセルを選択することがある。
この場合に、セルの行番号と列番号を取得するには、RangeオブジェクトやCellオブジェクトの以下のプロパティを利用する。
行番号を取得する … Rowプロパティ
列番号を取得する … Columnプロパティ
以下、サンプル。
この場合に、セルの行番号と列番号を取得するには、RangeオブジェクトやCellオブジェクトの以下のプロパティを利用する。
行番号を取得する … Rowプロパティ
列番号を取得する … Columnプロパティ
以下、サンプル。
Sub Main()
Sheets(1).Select
Sheets(1).Range("B1").Select
Debug.Print "現在選択中のセルの行番号 = " & ActiveCell.Row
Debug.Print "現在選択中のセルの列番号 = " & ActiveCell.Column
Debug.Print "指定したセルの行番号 = " & Range("C5").Row
Debug.Print "指定したセルの列番号 = " & Range("C5").Column
End Sub
ActiveCellやRangeで単体のセルを指定した場合には、RowプロパティやColumnプロパティを利用すれば行番号と列番号を簡単に取得することが出来る。
しかし、Range("C2:D5")のように複数のセルを指定している場合にRowプロパティやColumnプロパティを利用すると、最初に指定しているセルの行番号と列番号しか取得することができない。
Sub Main()
Debug.Print "指定したセルの開始行番号 = " & _
Sheets(1).Range("C2:D5").Row
Debug.Print "指定したセルの開始列番号 = " & _
Sheets(1).Range("C2:D5").Column
Debug.Print "指定したセルの最終行番号 = " & _
Sheets(1).Range("C2:D5").Rows(Range("C2:D5").Rows.Count).Row
Debug.Print "指定したセルの最終列番号 = " & _
Sheets(1).Range("C2:D5").Columns( _
Range("C2:D5").Columns.Count).Column
'Range("C2:D5")を省略して、命令を簡潔にする方法
With Range("C2:D5")
Debug.Print "指定したセルの最終行番号 = " & _
.Rows(.Rows.Count).Row
Debug.Print "指定したセルの最終列番号 = " & _
.Columns(.Columns.Count).Column
End With
End Sub
尚、シートで使用済みとなっているセルの最終行、最終列の取得方法は、以下の通り。
Sub Main()
Debug.Print Sheets(1).UsedRange.Rows( _
Sheets(1).UsedRange.Rows.Count).Row
Debug.Print Sheets(1).UsedRange.Columns( _
Sheets(1).UsedRange.Columns.Count).Column
'Sheets(1).UsedRangeを省略して、命令を簡潔にする方法
With Sheets(1).UsedRange
Debug.Print "使用済みセルの最終行番号 = " & _
.Rows(.Rows.Count).Row
Debug.Print "使用済みセルの最終列番号 = " & _
.Columns(.Columns.Count).Column
End With
End Sub
【補足事項】
・列番号から列名(A列やB列 等)を取得する方法は、以前の記事「【Excel】VBAで列番号から列名を取得する方法」にて説明している。
Sheets(1).Select
Sheets(1).Range("B1").Select
Debug.Print "現在選択中のセルの行番号 = " & ActiveCell.Row
Debug.Print "現在選択中のセルの列番号 = " & ActiveCell.Column
Debug.Print "指定したセルの行番号 = " & Range("C5").Row
Debug.Print "指定したセルの列番号 = " & Range("C5").Column
End Sub
ActiveCellやRangeで単体のセルを指定した場合には、RowプロパティやColumnプロパティを利用すれば行番号と列番号を簡単に取得することが出来る。
しかし、Range("C2:D5")のように複数のセルを指定している場合にRowプロパティやColumnプロパティを利用すると、最初に指定しているセルの行番号と列番号しか取得することができない。
Sub Main()
Debug.Print "指定したセルの開始行番号 = " & _
Sheets(1).Range("C2:D5").Row
Debug.Print "指定したセルの開始列番号 = " & _
Sheets(1).Range("C2:D5").Column
Debug.Print "指定したセルの最終行番号 = " & _
Sheets(1).Range("C2:D5").Rows(Range("C2:D5").Rows.Count).Row
Debug.Print "指定したセルの最終列番号 = " & _
Sheets(1).Range("C2:D5").Columns( _
Range("C2:D5").Columns.Count).Column
'Range("C2:D5")を省略して、命令を簡潔にする方法
With Range("C2:D5")
Debug.Print "指定したセルの最終行番号 = " & _
.Rows(.Rows.Count).Row
Debug.Print "指定したセルの最終列番号 = " & _
.Columns(.Columns.Count).Column
End With
End Sub
尚、シートで使用済みとなっているセルの最終行、最終列の取得方法は、以下の通り。
Sub Main()
Debug.Print Sheets(1).UsedRange.Rows( _
Sheets(1).UsedRange.Rows.Count).Row
Debug.Print Sheets(1).UsedRange.Columns( _
Sheets(1).UsedRange.Columns.Count).Column
'Sheets(1).UsedRangeを省略して、命令を簡潔にする方法
With Sheets(1).UsedRange
Debug.Print "使用済みセルの最終行番号 = " & _
.Rows(.Rows.Count).Row
Debug.Print "使用済みセルの最終列番号 = " & _
.Columns(.Columns.Count).Column
End With
End Sub
【補足事項】
・列番号から列名(A列やB列 等)を取得する方法は、以前の記事「【Excel】VBAで列番号から列名を取得する方法」にて説明している。
- カテゴリ:
- Excel
- VBA(MS-Office)