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の記述方法を使ってみてください。