VBA 範囲選択/セル選択
In this Article
VBAでは、セルやセルの範囲、またはワークシート内のすべてのセルを選択することができます。選択されたセルやセルの範囲は、Selectionオブジェクトを使って操作することができます。
VBAを使用した単一セルの選択
Selectメソッドを使って、ワークシートのセルを選択することができます。次のコードは、アクティブシートのセルA2を選択するものです。
Range("A2").Select
以下も同じ意味です。
Cells(2, 1).Select
結果は次のようになります。
VBAによるセルの範囲選択
SelectメソッドとRangeオブジェクトを使って、ワークシートのセル群を選択することができます。次のコードは、A1:C5を選択します。
Range("A1:C5").Select
VBAを使った非連続セルの範囲選択
VBAでは、セルや範囲をカンマで区切ることで、隣り合っていないセルや範囲を選択することができます。次のコードでは、セルA1、C1、E1を選択することができます。
Range("A1, C1, E1").Select
また、VBAでは、連続しない範囲のセットを選択することもできます。次のコードは、A1:A9とB11:B18を選択するものです。
Range("A1:A9, B11:B18").Select
ワークシートのすべてのセルを選択する
VBAを使用すると、ワークシートのすべてのセルを選択することができます。次のコードは、ワークシートのすべてのセルを選択します。
Cells.Select
行を選択する
Rowオブジェクトと選択したい行のインデックス番号を使って、ワークシートの特定の行を選択することができます。次のコードは、ワークシートの最初の行を選択します。
Rows(1).Select
列を選択する
Columnオブジェクトと選択したい列のインデックス番号を使って、ワークシートの特定の列を選択することができます。次のコードは、ワークシートのC列を選択します。
Columns(3).Select
列の最後の空白でないセルを選択する
例えば、セルA1、A2、A3、A4にデータがあり、列の最後の空白でないセルであるA4を選択したいとします。これを行うには、VBAのRange.Endメソッドを使用します。
この Range.End メソッドは4つの引数、すなわちxlToLeft, xlToRight, xlUp,xlDownを取ることができます。
次のコードは、A1がアクティブセルの場合、最後の空白でないセル(この場合はA4)を選択します。
Range("A1").End(xlDown).Select
行の最後の空白でないセルを選択する
例えば、セルA1、B1、C1、D1、E1にデータがあり、行の最後の空白でないセルであるE1を選択したい場合を考えてみましょう。これを行うには、VBAのRange.Endメソッドを使用します。 次のコードは、1行目の最後の空白でないセル(この場合はE1)を選択します。
Range("A1").End(xlToRight).Select
VBAで現在の領域を選択する
CurrentRegion プロパティを使用すると、指定したセル周辺の空白および非空白のセルからなる長方形の範囲を選択することができます。セルA1、B1、C1にデータがある場合、次のコードでセルA1周辺の範囲を選択します。
Range("A1").CurrentRegion.Select
つまり、A1:C1 の範囲が選択されます。
相対位置を指定してセルを選択する
Offsetプロパティを使うと、指定したセルに対する相対的な位置のセルを選択することができます。次のコードは、セルA1から1行1列分の位置にあるセルB2を選択します。
Range("A1").Offset(1, 1).Select
Excelで名前付き範囲を選択する
名前付き範囲を選択することもできます。例えば、セルの範囲A1:A4をFruitと名付けたとしましょう。この名前付き範囲を選択するには、次のコードを使用します。
Range("Fruit").Select
別のワークシートにあるセルを選択する
他のワークシートのセルを選択するには、まずWorksheet.Activateメソッドを使用してシートをアクティブにする必要があります。次のコードでは、Sheet5というシートのセルA7を選択することができます。
Worksheets("Sheet5").Activate
Range("A1").Select
VBAでSelectionオブジェクトを操作する
セルまたはセル範囲を選択すると、そのセルを操作するために Selectionオブジェクトを参照することができます。次のコードは、セル A1:C1 を選択し、これらのセルのフォントをArial に、フォントの太さを太字に、フォントスタイルを斜体に、セルの背景色を緑 に設定するものです。
Sub FormatSelection()
Range("A1:C1").Select
Selection.Font.Name = "Arial"
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Interior.Color = vbGreen
End Sub
結果は以下のようになります。
With…End Withコンストラクトの使用
上記の例では、With / End Withステートメントを使用して、Selectionオブジェクトを一度記述するだけで、繰り返し参照します。これにより、入力の手間が省け、コードも読みやすくなります。
Sub UsingWithEndWithSelection()
Range("A1:C1").Select
With Selection
.Font.Name = "Arial"
.Font.Bold = True
.Font.Italic = True
.Interior.Color = vbGreen
End With
End Sub