VBAのCellsとRangeの使い方

VBA プログラミング
この記事は約3分で読めます。

※当ブログではアフィリエイト広告を利用しています。

VBAでセル指定する場合は、「Cells」というプロパティを使用する。

セルの範囲指定する場合は、「Range」というオブジェクトを使用する。

これらの使い方について調べてみた。

Cellsプロパティ

Cellsプロパティは、第1引数が行番号(ROW)、第2引数が列番号(COLUMN)を指定する。

以下のようにすると、1行目・1列目であるセル「A1」の値を取得できる。

'セル「A1」の値
Cells(1, 1)

Rangeオブジェクト

Rangeオブジェクトは、「A1」のようにセルのアドレスを指定する。

以下のようにすると、セルアドレス「A1」の範囲オブジェクトを取得できる。

'セル「A1」の範囲
Range("A1")

また、セルのアドレス2つを「:」(コロン)で繋ぐと、その範囲の範囲オブジェクトを取得できる。

'セル「A1」から「C10」までの範囲
Range("A1:C10")

'列「A」全範囲
Range("A:A")

'行「1」全範囲
Range("1:1")

同様に、第1引数と第2引数で、始まりのセルと終わりのセルをそれぞれ指定すれば、その範囲オブジェクトを取得することができる。

'セル「A1」から「C10」までの範囲
Range("A1", C10")

'セル「A1」から「C10」までの範囲(「.Address」はなしでもOK)
Range(Cells(1, 1).Address, Cells(10, 3).Address)

よく使用するのは、範囲選択する場合や、範囲内のセル値をクリアする場合かと思う。

使い方は、以下のようにする。

「Select」メソッドを使用して、範囲選択できる。

「ClearContents」メソッドを使用して、範囲内のセル値をクリアできる。

'セル「A1」から「C10」までの範囲選択
Range("A1:C10").Select

'セル「A1」から「C10」までの範囲のクリア
Range("A1:C10").ClearContents

VBAでのCellsとRangeの使い方

Cellsプロパティでセルを指定し、値を取得する場合は行番号、列番号が必要になる。

しかし、多くの場所でその行番号、列番号をその都度数字で指定していると、もし行・列を追加することになったら大変です。

なので、必要なセルの行番号、列番号は定数で指定しておく方がよい。

そうすることで、修正箇所を定数の値のみにできるからです。

また、Rangeオブジェクトで範囲選択する場合は、引数2つで始まりのセルと終わりのセルを指定する方法が便利です。

用意したセルの行番号、列番号だけで、「A1」などのセルアドレスをわざわざ指定する必要がないからです。

'定数
Const NO_ROW = 1
Const NO_COL = 2
Const DETAIL_ROW_START = 2
Const DETAIL_COL_START = 2
Const DETAIL_ROW_END = 10
Const DETAIL_COL_END = 5

'Noセルの取得
Cells(NO_ROW, NO_COL)

'明細のクリア
Range(Cells(DETAIL_ROW_START, DETAIL_COL_START), _
      Cells(DETAIL_ROW_END, DETAIL_COL_END)).ClearContents

以上。

コメント

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