Excel の表を自由に扱うためには、表全体や表の上下左右に位置するセルを参照する必要があります。
表全体のセルを操作するには、Range オブジェクトの CurrentRegion プロパティを使います。
表の上下左右の端にあるセルを操作するには、End プロパティを使います。
CurrentRegion プロパティで表全体を操作する
次のコードを実行するとデータが入力できます。
[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(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つ下のセルを指定します。
[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列目を指定します。
■関連記事■ Rangeプロパティの書き方
■関連記事■ RowsプロパティとColumnsプロパティの参照方法
■関連記事■ Valueプロパティの省略
■関連記事■ Offset プロパティでセルを参照する
■関連記事■ CurrentRegionとEndプロパティでセルを参照する
以上で「CurrentRegionとEndプロパティでセルを参照する」の説明を終わります。