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

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

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

目次

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

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

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

[code]
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
[/code]

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

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

[code]
Sub サンプル5330_1()

Range(“A3”).CurrentRegion.Select

End Sub
[/code]

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

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

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

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

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

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

■ End(xlDown)

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

[code]
Sub サンプル5330_2()

Range(“B5”, Range(“B5”).End(xlDown)).Select

End Sub
[/code]

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

■ End(xlUp)

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

[code]
Sub サンプル5330_3()

Range(“B5”, Range(“B5”).End(xlUp)).Select

End Sub
[/code]

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

■ End(xlToLeft)

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

[code]
Sub サンプル5330_4()

Range(“B5”, Range(“B5”).End(xlToLeft)).Select

End Sub
[/code]

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

■ End(xlToRight)

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

[code]
Sub サンプル5330_5()

Range(“B5”, Range(“B5”).End(xlToRight)).Select

End Sub
[/code]

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

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

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

[code]
Sub サンプル5330_6()

Range(“A5”, Range(“A5”).End(xlDown).End(xlToRight)).Select

End Sub
[/code]

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

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

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

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

[code]
Sub サンプル5330_7()

Range(“A3”).End(xlDown).Offset(1).Select

End Sub
[/code]

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

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

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

[code]
Sub サンプル5330_7()

Cells(Rows.Count, 1).End(xlUp).Offset(1).Select

End Sub
[/code]

■ 列の変更

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

[code]
Sub サンプル5330_8()

Cells(Rows.Count, 2).End(xlUp).Offset(1).Select

End Sub
[/code]

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

目次