RangeオブジェクトにCellsプロパティを使う
あるセルを参照するのに
RangeプロパティとCellsプロパティの両方が使えます。
アクティブシートのセルA1の値を1にするのは
次の2通りでできます。
ActiveSheet.Range("A1") = 1
ActiveSheet.Cells(1, 1) = 1
Rangeプロパティを使うと
A1形式で指定しないといけないので
For文の中ではRangeプロパティは使いにくいです。
一方でCellsプロパティは
行と列を数字で指定できるので
For文の中で使いやすいです。
今までRangeプロパティとCellsプロパティは
上述の理由から使い分けをして来ました。
実は、CellsプロパティはRangeオブジェクトにも使えます。
参照:MSDNサイト内「Cells プロパティ」
例えば次のように使います。
Range("B2:D6").Cells(2, 2) = 2
上のコードはアクティブシートのセルC3の値を2にします。
この使い方ではCellsプロパティは
Rangeオブジェクトの範囲(上の図の赤枠内)で
左上のセルを基準に(2,2)の位置である
セルC3を相対的に指定します。
この使い方は結構便利です。
RangeオブジェクトにCellsプロパティを使用して
Rangeオブジェクトに含まれる各セルに
値を入れて行くのに使えます。
Rangeオブジェクトの行数、列数はそれぞれ
Range("B2:D6").Rows.Count
Range("B2:D6").Columns.Count
で取得して、
For文のインデックスに使用します。
コードはこちら
Sub macro180729a() Dim i As Integer,
j As Integer |
実行結果:
Rangeオブジェクトの範囲"B2:D6"のセルに値が入力されました。
| 固定リンク
| コメント (0)
| トラックバック (0)


