VBA 範囲選択/セル選択

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 3月 16, 2022

VBAでは、セルやセルの範囲、またはワークシート内のすべてのセルを選択することができます。選択されたセルやセルの範囲は、Selectionオブジェクトを使って操作することができます。

VBAを使用した単一セルの選択

Selectメソッドを使って、ワークシートのセルを選択することができます。次のコードは、アクティブシートのセルA2を選択するものです。

Range("A2").Select

以下も同じ意味です。

Cells(2, 1).Select

結果は次のようになります。

Selecting a Single Cell in VBA

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

結果は以下のようになります。

Using the Selection Object

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
vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples