Excel の表を自由に扱うためには、表全体や表の上下左右に位置するセルを参照する必要があります。
表全体のセルを操作するには、Range オブジェクトの CurrentRegion プロパティを使います。
表の上下左右の端にあるセルを操作するには、End プロパティを使います。
CurrentRegion プロパティで表全体を操作する
次のコードを実行するとデータが入力できます。
■ コード内を「Wクリック」で選択できます。
Sub データ5330_1() <pre><code>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-×××-××××"</code></pre> End Sub
CurrentRegion プロパティで表全体を操作する
■ コード内を「Wクリック」で選択できます。
Sub サンプル5330_2() <pre><code>Range("A3").CurrentRegion.Select</code></pre> 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_3() <pre><code>Range("B5", Range("B5").End(xlDown)).Select</code></pre> End Sub
• Range(“B5”, Range(“B5”).End(xlDown)).Select
’セルB5を基準にして、下端までを選択します。

End(xlUp)
■ コード内を「Wクリック」で選択できます。
Sub サンプル5330_4() <pre><code>Range("B5", Range("B5").End(xlUp)).Select</code></pre> End Sub
• Range(“B5”, Range(“B5”).End(xlUp)).Select
’セルB5を基準にして、上端までを選択します。

End(xlToLeft)
■ コード内を「Wクリック」で選択できます。
Sub サンプル5330_5() <pre><code>Range("B5", Range("B5").End(xlToLeft)).Select</code></pre> End Sub
• Range(“B5”, Range(“B5”).End(xlToLeft)).Select
’セルB5を基準にして、左端までを選択します。

End(xlToRight)
■ コード内を「Wクリック」で選択できます。
Sub サンプル5330_6() <pre><code>Range("B5", Range("B5").End(xlToRight)).Select</code></pre> End Sub
• Range(“B5”, Range(“B5”).End(xlToLeft)).Select
’セルB5を基準にして、右端までを選択します。

途中のセルからの参照方法
■ コード内を「Wクリック」で選択できます。
Sub サンプル5330_7() <pre><code>Range("A5", Range("A5").End(xlDown).End(xlToRight)).Select</code></pre> End Sub
• Range(“A5”, Range(“A5”).End(xlDown).End(xlToRight)).Select
’セルA5を基準にして、下端から右端までを選択します。

最終データの下のセルを選択する方法
表の最後の行の1つ下を参照する場合は、End プロパティで表の最下端のセルを参照します。その後、Offset プロパティで最終行の1つ下を指定します。
■ コード内を「Wクリック」で選択できます。
Sub サンプル5330_8() <pre><code>Range("A3").End(xlDown).Offset(1).Select</code></pre> End Sub
• Range(“A3”).End(xlDown).Offset(1).Select
’セルA3を基準にして、行の下端を選択し下端のセルから1つ下のセルを指定します。

表の途中に空白行がある場合
表の途中に空白行があると、上の方法ではデータ入力範囲の下端のセルを参照することができません。
表の途中に空白行があるときは「Rows.Count」で総行数を調べて、「End(xlUp)」でデータの入力行を指定します。
その後 Offsetプロパティで1つ下のセルを指定します。
■ コード内を「Wクリック」で選択できます。
Sub サンプル5330_8() <pre><code>Cells(Rows.Count, 1).End(xlUp).Offset(1).Select</code></pre> End Sub

■ 列の変更
■ コード内を「Wクリック」で選択できます。
Sub サンプル5330_9() <pre><code>Cells(Rows.Count, 2).End(xlUp).Offset(1).Select</code></pre> End Sub
• Cells(Rows.Count, 2).End(xlUp).Offset(1).Select
’Cells(Rows.Count, 2) で数値を2にすると、2列目を指定します。

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