VBA でのセルの選択
- VBA で単一のセルを選択する
- VBA でセルの範囲を選択する
- VBA で連続していないセルの範囲を選択する
- VBA のワークシートですべてのセルを選択
- VBA で行を選択する
- VBA で列を選択する
- VBA の列の最後の空でないセルを選択する
- VBA の行の最後の空でないセルを選択する
- VBA で現在のリージョンを選択する
- VBA の別のセルに関連するセルを選択する
- VBA で名前付き範囲を選択する
- VBA の別のワークシートでセルを選択する
-
VBA で
Selection
オブジェクトを操作する
この次の記事では、VBA でのセルの選択と、VBA でセルの範囲を選択する方法について説明します。
VBA を使用すると、ワークシート内のセル、セルの範囲、またはすべてのセルを選択できます。Selection
オブジェクトを使用して、選択したセルまたはコンテンツを操作できます。
VBA で単一のセルを選択する
Select
メソッドを使用して、ワークシートのセルを選択できます。次のコードは、ActiveWorksheet
のセル B2
を選択します。
# VBA
Range("B2").Select
または、以下に示す別の方法を使用することもできます。
# vba
Cells(2, 2).Select
両方のコードの出力を以下に示します。
VBA でセルの範囲を選択する
Select
手法と Range
オブジェクトを使用して、ワークシート内のセルのグループを選択できます。次のコードは、以下に示すように A1:B5
を選択します。
# VBA
Range("A1:B5").Select
出力:
VBA で連続していないセルの範囲を選択する
VBA では、セルまたは範囲をコンマで分割することにより、隣接していないセルまたは範囲を選択できます。次のコードでは、以下に示すように、セル B1
、D1
、および F1
を選択できます。
# VBA
Range("B1, D1, F1").Select
出力:
VBA を使用して、連続していない範囲のセットを選択することもできます。次のコードは、以下に示すように、A1:A5
と B5:B8
を選択します。
# VBA
Range("A1:A5, B5:B8").Select
出力:
VBA のワークシートですべてのセルを選択
VBA を使用して、ワークシート内のすべてのセルを選択できます。以下のコードは、ワークシート内のすべてのセルを選択します。
# VBA
Cells.Select
出力:
VBA で行を選択する
Row
オブジェクトと選択する行のインデックス番号を使用して、ワークシート内の特定の行を選択できます。以下のコードは、ワークシートの最初の行を選択します。
# VBA
Rows(2).Select
出力:
VBA で列を選択する
Column
オブジェクトと選択する列のインデックス番号を使用して、ワークシート内の特定の列を選択できます。次のコードは、以下のワークシートの列 B を選択します。
# VBA
Columns(2).Select
出力:
VBA の列の最後の空でないセルを選択する
セル B1
、B2
、B3
、および B4
にデータがあり、列のセル B4
である可能性がある最後の非空白セルを選択します。VBA を使用してこれを実行し、Range.End
メソッドを使用できます。
Range.End
メソッドは、xlToLeft
、xlToRight
、xlUp
、xlDown
の 4つのオプションを使用できます。
以下のコードは、以下に示すように、B1
がアクティブセルである場合、最後の非空白セル、この場合は B4
を選択します。
# VBA
Range("B1").End(xlDown).Select
出力:
VBA の行の最後の空でないセルを選択する
セル A2
、B2
、C2
、D2
、および E2
にデータがあり、行のセル E2
である可能性がある最後の非空白セルを選択するとします。この場合、VBA と Range.End
メソッドを使用することができます。
以下のコードは、以下に示すように、A2
がアクティブセルである場合、最後の非空白セル、この場合は E2
を選択します。
# VBA
Range("A2").End(xlToRight).Select
出力:
VBA で現在のリージョンを選択する
Range
オブジェクトの CurrentRegion
プロパティを使用して、特定の入力セルの周囲の空白セルと非空白セルの長方形の範囲を選択できます。セル A2
、B2
、および C2
にデータがある場合、次のコードはセル A2
の周りのこの領域を選択します。
# VBA
Range("A2").CurrentRegion.Select
出力:
VBA の別のセルに関連するセルを選択する
Offset
プロパティを使用して、別のセルに関連するセルを選択できます。次のコードは、セル C3
、セル A1
に近い 2つの行、および 2つの列を選択する方法を示しています。
# VBA
Range("A1").Offset(2, 2).Select
出力:
VBA で名前付き範囲を選択する
名前付き範囲も選択できます。セルに B1:B4
コードという名前を付けたとしましょう。
以下に示すように、次のコードを使用して、この名前付き範囲を選択できます。
# VBA
Range("Code").Select
出力:
VBA の別のワークシートでセルを選択する
まず、Worksheets.Activate
メソッドを使用してシートをアクティブ化し、別のワークシートのセルを選択する必要があります。次のコードでは、Sheet2
のセル A4
を選択できます。
# VBA
Worksheets("Sheet2").Activate
Range("A4").Select
出力:
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 で 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
出力: