さまざまなセル範囲の参照

タイトルのマクロは、以下です。

' さまざまなセル範囲の参照
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

コードの説明

  1. サブルーチンの宣言:
    • このサブルーチンは、セル範囲に対するさまざまな操作をデモンストレーションします。
  2. 範囲操作(With ステートメント):
    • 範囲 B2に対する一連の操作をグループ化します。
  3. 範囲のオフセット(Offset メソッド):
    • Offset(2, 1) は範囲を2行下、1列右にずらした範囲(C4)を返します。
    • Offset(0, -1) は範囲を0行上、1列左にずらした範囲(A2)を返します。
  4. 範囲のリサイズ(Resize メソッド):
    • Resize(5, 4) は範囲の行数を5、列数を4に変更した範囲(B2)を返します。
    • Resize(1) は範囲の行数を1に変更した範囲(B2)を返します。
  5. 単一セル範囲の操作(With ステートメント):
    • セル B2 に対する一連の操作をグループ化します。
  6. 現在の連続したセル範囲(CurrentRegion プロパティ):
    • CurrentRegion プロパティは、セル B2 から連続したデータ範囲(B2)のアドレスを返します。
  7. 連続したデータの最終セルの取得(End メソッド):
    • End(xlDown) は B2 から下方向に連続したデータの最終セル(B5)のアドレスを返します。
    • End(xlToRight) は B2 から右方向に連続したデータの最終セル(D2)のアドレスを返します。
  8. 行全体および列全体の取得(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

Follow me!