さまざまなセル範囲の参照
タイトルのマクロは、以下です。
' さまざまなセル範囲の参照
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$7Offset(0, -1).Addressの出力:$A$2:$C$5Resize(5, 4).Addressの出力:$B$2:$E$6Resize(1).Addressの出力:$B$2:$D$2CurrentRegion.Addressの出力:$B$2:$D$5End(xlDown).Addressの出力:$B$5End(xlToRight).Addressの出力:$D$2EntireRow.Addressの出力:$2:$2EntireColumn.Addressの出力:$B:$B

