Excel VBA 複数のセルを一括で選択、指定する方法

ExcelVBA-基礎編

VBAで複数のセルを選択、指定する方法について説明します。

複数のセルと言っても連続したセルや、離れたセルの選択や指定する方法があります。

また、セルを操作するにはRangeプロパティとCellsプロパティがありますので、それぞれのケースのサンプルコードを紹介します。

その他のセルの操作については下記記事をご覧ください。

連続したセル範囲を選択する

記述方法

まずは連続した複数のセルを選択、指定する方法です。

以下のようにA1からC3のように連続した範囲を指定する方法です。

(“最初のセル:最後のセル“)とコロンで区切って、それをダブルクォーテーションで囲います。

サンプルコード

Range

Sub Sample1()

'連続したセルを選択する
Range("A1:C3").Select

End Sub

また、次のようにカンマで区切って、それぞれのセルをダブルクォーテーションで囲う事で同じように選択できます。

Sub Sample2()

'連続したセルを選択する
Range("A1", "C3").Select

End Sub

Cells

CellsプロパティはRangeプロパティ内の最初のセルと、最後のセルをそれぞれCellsで指定します。

Sub Sample3()

'連続したセルを選択する
Range(Cells(1, 1), Cells(3, 3)).Select

End Sub

離れたセルを複数選択するコード

記述方法

次は離れたセルを複数選択する方法です。

以下のように連続していない、離れたセルと選択します。

連続したセルの選択はRangeもCellsもどちらも簡単ですが、離れたセルの場合Cellsで記述するには少し工夫が必要です。

Rangeの場合は選択するセルを、それぞれカンマで区切ります

Cellsの場合は「Unionメソッド」を使用します。

サンプルコード

Range

Sub Sample4()

'離れたセルを複数選択する
Range("A1,B3,C5").Select

End Sub

Cells

Sub Sample5()

'離れたセルを複数選択する
Union(Cells(1, 1), Cells(3, 2), Cells(5, 3)).Select

End Sub

まとめ

一見するとRangeプロパティの方がコードも短く、特に離れたセルの指定ではCellsのようにUnionも必要としないため、またA1などセルを直感的に取り扱いやすいために、使いやすく感じます。

ですが、プログラミング的にはループや分岐を行う際にローマ字よりも数字の方が非常に使い勝手が良いです。

実際にコーディングしてみるとわかりますが、Rangeで記述する機会の方が少ない気がします。

慣れるまでCellsが難しく感じるかもしれませんが、ぜひCellsの記述方法を使ってみてください。

タイトルとURLをコピーしました