このページでは、セルオブジェクトのコレクション(集合)である Rows や Columns によってセル範囲を指定する方法を説明します。
Rows や Columns を使用したサンプル
Rows や Columns につづけてカッコ+数値を指定することで、その行や列にアクセスできます。また、数値をコロン(:)でつなげると、範囲を指定することができます。範囲指定するときは値をダブルクォーテーションで括る必要がありますので、注意してください。
主なプロパティとして、RowHeight や ColumnWidth があります。これらのプロパティを使用することで、行の高さや列の幅を取得・設定することができます。
Sub sample6_5()
'単一行を指定
With Rows(3)
.Interior.Color = vbBlue
'行の高さを2倍にします。
.RowHeight = .RowHeight * 2
End With
'複数行を指定
Rows("5:7").Interior.Color = vbBlue
'単一列を指定
Columns(3).Interior.Color = vbGreen
'複数列を指定
With Columns("E:G")
.Interior.Color = vbGreen
'列の幅を1/2にします。
.ColumnWidth = .ColumnWidth / 2
End With
End Sub
あるセルを含む行・列で指定する方法
あるセルまたはレンジにおいて EntireRow や EntireColumn を使用すると、そのセルやレンジを含む行・列を指定することができます。
Sub sample6_6()
With Range("B2,D4:E5")
.Value = "テスト"
.EntireRow.Interior.Color = vbBlue
.EntireColumn.Interior.Color = vbGreen
End With
End Sub
基準セルからのオフセット
あるセルまたはレンジにおいて Offset プロパティを使用すると、 そのセルやレンジを基準として指定量移動させたセルを選択することができます。 Offsetには行方向、列方向の移動量(マイナスも可能)をそれぞれ引数として指定します。
Sub sample6_7()
With Range("B2,D4:E5")
.Value = "基準"
.Interior.Color = vbGreen
With .Offset(5, 2)
.Value = "変更後"
.Interior.Color = vbYellow
End With
End With
End Sub
Withステートメント セル書式(背景色・パターン)
Offsetを使用した別のサンプルマクロ
空白行と空白列で囲まれた領域
CurrentRegion はある基準となるセルが含まれる空白行と空白列で囲まれた矩形領域を選択します。 表などの矩形領域を選択するときに使用します。
次のサンプルは、セルB3を起点にまわりを空白セルで囲まれた矩形領域を色付けします。
Sub sample6_8()
Range("B3").CurrentRegion.Interior.Color = vbGreen
End Sub
ワークシート内の使用済み領域(UsedRange)
セル書式(背景色・パターン)
下図がマクロ実行前の状態です。
マクロを実行すると、B3~D5までの範囲が緑色に設定されました。