アフィリエイト広告を利用しています

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

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プロパティでセルを参照する」の説明を終わります。

目次