CurrentRegionとEndプロパティでセルを参照する

Excel の表を自由に扱うためには、表全体や表の上下左右に位置するセルを参照する必要があります。

表全体のセルを操作するには、Range オブジェクトの CurrentRegion プロパティを使います。
表の上下左右の端にあるセルを操作するには、End プロパティを使います。

CurrentRegion プロパティで表全体を操作する

次のコードを実行するとデータが入力できます。

  ■ コード内を「Wクリック」で選択できます。

Sub データ5330_1()

    Range("A1") = "参加者リスト"
    Range("A3") = "会員番号"
    Range("B3") = "氏名"
    Range("C3") = "住所"
    Range("D3") = "電話番号"
    
    Range("A4") = 1001
    Range("B4") = "田中一郎"
    Range("C4") = "東京都"
    Range("D4") = "03-×××-××××"

    Range("A5") = 1002
    Range("B5") = "田中二郎"
    Range("C5") = "東京都"
    Range("D5") = "03-×××-××××"
    
    Range("A6") = 1003
    Range("B6") = "田中三郎"
    Range("C6") = "東京都"
    Range("D6") = "03-×××-××××"
    
    Range("A7") = 1004
    Range("B7") = "田中四郎"
    Range("C7") = "東京都"
    Range("D7") = "03-×××-××××"
    
    Range("A8") = 1005
    Range("B8") = "山田一郎"
    Range("C8") = "東京都"
    Range("D8") = "03-×××-××××"
    
    Range("A9") = 1006
    Range("B9") = "山田二郎"
    Range("C9") = "東京都"
    Range("D9") = "03-×××-××××"
    
    Range("A10") = 1007
    Range("B10") = "山田三郎"
    Range("C10") = "東京都"
    Range("D10") = "03-×××-××××"
     
End Sub

■ CurrentRegion プロパティで表全体を操作する

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル5330_1()

    Range("A3").CurrentRegion.Select
     
End Sub

• Range("A3").CurrentRegion.Select
 ’セルA3を基準にして、アクティブセルの領域を取得して選択します。

■ アクティブセル領域
アクティブセル領域とは、アクティブセルを含む連続したデータの入ったセル範囲のことをいいます。
セルA3をアクティブセルとすると、セルA3~D10の領域がアクティブ領域になります。

空白行や空白列が、セル範囲の境界になります。

●マクロの実行結果
セルA3を基準として、アクティブセル領域が選択されます。

End プロパティで表の端のセルを操作する

■ End プロパティ
• End(xlDown)
 ’領域の下端
• End(xlUp)
 ’領域の上端
• End(xlToLeft)
 ’領域の左端
• End(xlToRight)
 ’領域の右端

■ End(xlDown)

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル5330_2()

    Range("B5", Range("B5").End(xlDown)).Select
     
End Sub

• Range("B5", Range("B5").End(xlDown)).Select
 ’セルB5を基準にして、下端までを選択します。

■ End(xlUp)

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル5330_3()

    Range("B5", Range("B5").End(xlUp)).Select
     
End Sub

• Range("B5", Range("B5").End(xlUp)).Select
 ’セルB5を基準にして、上端までを選択します。

■ End(xlToLeft)

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル5330_4()

    Range("B5", Range("B5").End(xlToLeft)).Select
     
End Sub

• Range("B5", Range("B5").End(xlToLeft)).Select
 ’セルB5を基準にして、左端までを選択します。

■ End(xlToRight)

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル5330_5()

    Range("B5", Range("B5").End(xlToRight)).Select
     
End Sub

• Range("B5", Range("B5").End(xlToLeft)).Select
 ’セルB5を基準にして、右端までを選択します。

■ 途中のセルからの参照方法

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル5330_6()

    Range("A5", Range("A5").End(xlDown).End(xlToRight)).Select
     
End Sub

• Range("A5", Range("A5").End(xlDown).End(xlToRight)).Select
 ’セルA5を基準にして、下端から右端までを選択します。

最終データの下のセルを選択する方法

表の最後の行の1つ下を参照する場合は、End プロパティで表の最下端のセルを参照します。その後、Offset プロパティで最終行の1つ下を指定します。

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル5330_7()

    Range("A3").End(xlDown).Offset(1).Select
     
End Sub

• Range("A3").End(xlDown).Offset(1).Select
 ’セルA3を基準にして、行の下端を選択し下端のセルから1つ下のセルを指定します。

■ 表の途中に空白行がある場合
表の途中に空白行があると、上の方法ではデータ入力範囲の下端のセルを参照することができません。
表の途中に空白行があるときは「Rows.Count」で総行数を調べて、「End(xlUp)」でデータの入力行を指定します。
その後 Offsetプロパティで1つ下のセルを指定します。

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル5330_7()
 
    Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
      
End Sub

■ 列の変更

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル5330_8()
 
    Cells(Rows.Count, 2).End(xlUp).Offset(1).Select
      
End Sub

•  Cells(Rows.Count, 2).End(xlUp).Offset(1).Select
 ’Cells(Rows.Count, 2) で数値を2にすると、2列目を指定します。

以上で「CurrentRegionとEndプロパティでセルを参照する」の説明を終わります。