HOWTO · VBA

VBA でのセルの選択

このチュートリアルでは、VBA でのセルの選択がどのように機能するかを示します。

この次の記事では、VBA でのセルの選択と、VBA でセルの範囲を選択する方法について説明します。

VBA を使用すると、ワークシート内のセル、セルの範囲、またはすべてのセルを選択できます。Selection オブジェクトを使用して、選択したセルまたはコンテンツを操作できます。

VBA で単一のセルを選択する

Select メソッドを使用して、ワークシートのセルを選択できます。次のコードは、ActiveWorksheet のセル B2 を選択します。

# VBA
Range("B2").Select

または、以下に示す別の方法を使用することもできます。

# vba
Cells(2, 2).Select

両方のコードの出力を以下に示します。

VBA で単一のセルを選択する

VBA でセルの範囲を選択する

Select 手法と Range オブジェクトを使用して、ワークシート内のセルのグループを選択できます。次のコードは、以下に示すように A1:B5 を選択します。

# VBA
Range("A1:B5").Select

出力:

VBA でセルの範囲を選択する

VBA で連続していないセルの範囲を選択する

VBA では、セルまたは範囲をコンマで分割することにより、隣接していないセルまたは範囲を選択できます。次のコードでは、以下に示すように、セル B1D1、および F1 を選択できます。

# VBA
Range("B1, D1, F1").Select

出力:

VBA で連続していない範囲のセルを選択する

VBA を使用して、連続していない範囲のセットを選択することもできます。次のコードは、以下に示すように、A1:A5B5:B8 を選択します。

# VBA
Range("A1:A5, B5:B8").Select

出力:

VBA のセルパート 2 の非連続範囲を選択する

VBA のワークシートですべてのセルを選択

VBA を使用して、ワークシート内のすべてのセルを選択できます。以下のコードは、ワークシート内のすべてのセルを選択します。

# VBA
Cells.Select

出力:

VBA のワークシートを使用してすべてのセルを選択する

VBA で行を選択する

Row オブジェクトと選択する行のインデックス番号を使用して、ワークシート内の特定の行を選択できます。以下のコードは、ワークシートの最初の行を選択します。

# VBA
Rows(2).Select

出力:

VBA で行を選択する

VBA で列を選択する

Column オブジェクトと選択する列のインデックス番号を使用して、ワークシート内の特定の列を選択できます。次のコードは、以下のワークシートの列 B を選択します。

# VBA
Columns(2).Select

出力:

VBA で列を選択する

VBA の列の最後の空でないセルを選択する

セル B1B2B3、および B4 にデータがあり、列のセル B4 である可能性がある最後の非空白セルを選択します。VBA を使用してこれを実行し、Range.End メソッドを使用できます。

Range.End メソッドは、xlToLeftxlToRightxlUpxlDown の 4つのオプションを使用できます。

以下のコードは、以下に示すように、B1 がアクティブセルである場合、最後の非空白セル、この場合は B4 を選択します。

# VBA
Range("B1").End(xlDown).Select

出力:

VBA の列の空でない最後のセルを選択する

VBA の行の最後の空でないセルを選択する

セル A2B2C2D2、および E2 にデータがあり、行のセル E2 である可能性がある最後の非空白セルを選択するとします。この場合、VBA と Range.End メソッドを使用することができます。

以下のコードは、以下に示すように、A2 がアクティブセルである場合、最後の非空白セル、この場合は E2 を選択します。

# VBA
Range("A2").End(xlToRight).Select

出力:

VBA の行の空でない最後のセルを選択する

VBA で現在のリージョンを選択する

Range オブジェクトの CurrentRegion プロパティを使用して、特定の入力セルの周囲の空白セルと非空白セルの長方形の範囲を選択できます。セル A2B2、および C2 にデータがある場合、次のコードはセル A2 の周りのこの領域を選択します。

# VBA
Range("A2").CurrentRegion.Select

出力:

VBA で現在のリージョンを選択する

VBA の別のセルに関連するセルを選択する

Offset プロパティを使用して、別のセルに関連するセルを選択できます。次のコードは、セル C3、セル A1 に近い 2つの行、および 2つの列を選択する方法を示しています。

# VBA
Range("A1").Offset(2, 2).Select

出力:

VBA でオフセットを使用して単一のセルを選択する

VBA で名前付き範囲を選択する

名前付き範囲も選択できます。セルに B1:B4 コードという名前を付けたとしましょう。

以下に示すように、次のコードを使用して、この名前付き範囲を選択できます。

# VBA
Range("Code").Select

出力:

VBA でセルの名前付き範囲を選択する

VBA の別のワークシートでセルを選択する

まず、Worksheets.Activate メソッドを使用してシートをアクティブ化し、別のワークシートのセルを選択する必要があります。次のコードでは、Sheet2 のセル A4 を選択できます。

# VBA
Worksheets("Sheet2").Activate
Range("A4").Select

出力:

VBA の別のシートから単一のセルを選択する

VBA で Selection オブジェクトを操作する

セルまたはセルの範囲を選択したら、Selection オブジェクトを参照してこれらのセルを操作できます。次のコードは、セル B1:D1 を選択し、これらのセルのフォントを Calibri に、フォントの太さを太字に、フォントスタイルを斜体に、塗りつぶしの色を青に設定します。

# VBA
Sub newFunc()

Range("B1:D4").Select
Selection.Font.Name = "Calibri"
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Interior.Color = vbBlue

End Sub

出力:

VBA で範囲を選択して形式を変更する

VBA で With コンストラクトを使用する

With または End With ステートメントを使用して上記の例を関連付け、Selection オブジェクトを 1 回だけ参照できます。これにより入力が継続され、通常はコードが読みやすくなります。

# VBA
Sub newFunc()

Range("B1:D4").Select
With Selection
.Font.Name = "Calibri"
.Font.Bold = True
.Font.Italic = False
.Interior.Color = vbBlue

End With
End Sub

出力:

with 構文を使用して範囲を選択し、VBA で形式を変更する