さまざまなセル範囲の参照
タイトルのマクロは、以下です。
' さまざまなセル範囲の参照
Private Sub Range_Offset_Resize_CurrentRegion_End_Entire()
' セル範囲B2:D5に対する操作
With Sheet1.Range("B2:D5")
' セル範囲を2行下方向、1列右方向にずらした範囲のアドレスを出力する
Debug.Print .Offset(2, 1).Address
' 結果: $C$4:$E$7
' B2:D5 の範囲を2行下、1列右にずらした範囲(C4:E7)のアドレスを取得します。
' セル範囲を0行上方向、1列左方向にずらした範囲のアドレスを出力する
Debug.Print .Offset(0, -1).Address
' 結果: $A$2:$C$5
' B2:D5 の範囲を0行上、1列左にずらした範囲(A2:C5)のアドレスを取得します。
' セル範囲の行数を5、列数を4に変更した範囲のアドレスを出力する
Debug.Print .Resize(5, 4).Address
' 結果: $B$2:$E$6
' B2:D5 の範囲を行数5、列数4に拡大した範囲(B2:E6)のアドレスを取得します。
' セル範囲の行数を1に変更した範囲のアドレスを出力する
Debug.Print .Resize(1).Address
' 結果: $B$2:$D$2
' B2:D5 の範囲を行数1に変更した範囲(B2:D2)のアドレスを取得します。
End With
' セル範囲B2に対する操作
With Sheet1.Range("B2")
' 現在の連続したセル範囲(CurrentRegion)のアドレスを出力する
Debug.Print .CurrentRegion.Address
' 結果: $B$2:$D$5
' B2 の連続したデータ範囲(B2:D5)のアドレスを取得します。
' 下方向に連続したデータの最終セルのアドレスを出力する
Debug.Print .End(xlDown).Address
' 結果: $B$5
' B2 から下方向に連続したデータの最終セル(B5)のアドレスを取得します。
' 右方向に連続したデータの最終セルのアドレスを出力する
Debug.Print .End(xlToRight).Address
' 結果: $D$2
' B2 から右方向に連続したデータの最終セル(D2)のアドレスを取得します。
' セルが含まれる行全体の範囲のアドレスを出力する
Debug.Print .EntireRow.Address
' 結果: $2:$2
' B2 が含まれる行全体(2行目)のアドレスを取得します。
' セルが含まれる列全体の範囲のアドレスを出力する
Debug.Print .EntireColumn.Address
' 結果: $B:$B
' B2 が含まれる列全体(B列)のアドレスを取得します。
End With
End Sub
コードの説明
- サブルーチンの宣言:
- このサブルーチンは、セル範囲に対するさまざまな操作をデモンストレーションします。
- 範囲操作(
With
ステートメント):- 範囲 B2に対する一連の操作をグループ化します。
- 範囲のオフセット(
Offset
メソッド):Offset(2, 1)
は範囲を2行下、1列右にずらした範囲(C4)を返します。Offset(0, -1)
は範囲を0行上、1列左にずらした範囲(A2)を返します。
- 範囲のリサイズ(
Resize
メソッド):Resize(5, 4)
は範囲の行数を5、列数を4に変更した範囲(B2)を返します。Resize(1)
は範囲の行数を1に変更した範囲(B2)を返します。
- 単一セル範囲の操作(
With
ステートメント):- セル B2 に対する一連の操作をグループ化します。
- 現在の連続したセル範囲(
CurrentRegion
プロパティ):CurrentRegion
プロパティは、セル B2 から連続したデータ範囲(B2)のアドレスを返します。
- 連続したデータの最終セルの取得(
End
メソッド):End(xlDown)
は B2 から下方向に連続したデータの最終セル(B5)のアドレスを返します。End(xlToRight)
は B2 から右方向に連続したデータの最終セル(D2)のアドレスを返します。
- 行全体および列全体の取得(
EntireRow
およびEntireColumn
プロパティ):EntireRow
は B2 が含まれる行全体(2行目)のアドレスを返します。EntireColumn
は B2 が含まれる列全体(B列)のアドレスを返します。
実行結果
Offset(2, 1).Address
の出力:$C$4:$E$7
Offset(0, -1).Address
の出力:$A$2:$C$5
Resize(5, 4).Address
の出力:$B$2:$E$6
Resize(1).Address
の出力:$B$2:$D$2
CurrentRegion.Address
の出力:$B$2:$D$5
End(xlDown).Address
の出力:$B$5
End(xlToRight).Address
の出力:$D$2
EntireRow.Address
の出力:$2:$2
EntireColumn.Address
の出力:$B:$B