- Home ›
- Excel VBA入門 ›
- Rangeオブジェクトの取得 ›
- HERE
単一セルの参照
前回のページではワークシートなどのRangeプロパティを使ってRangeオブジェクトを取得する方法を見てみましたが、同じようにワークシートなどのCellsプロパティを使ってもRangeオブジェクトを取得できます。
オブジェクト.Cells(行番号, 列番号)
Rangeオブジェクトを取得したいセルの行番号、及び列番号を数値にて指定します。行番号及び列番号はそれぞれ「1」から開始されます。よって左上のセルは「Cells(1, 1)」となります。
オブジェクトにはWorksheetオブジェクトやRangeオブジェクトなどが指定できます。省略した場合は、現在のアクティブなワークシートになります。
使い方は次のようになります。
Dim range1 As Range Set range1 = Cells(2, 3) range1.Value = 10
Cellsプロパティは単一のセルを取り扱う時に使います。Rangeプロパティでも同じことが出来るのですが、Cellsプロパティの大きな特徴はセルの位置を数値で指定可能なことです。数値で指定できることによって、繰り返し処理などの中でセルの位置を動的に変更して処理などが行いやすくなります。
Rangeプロパティを使った場合と同じように、いったんRangeオブジェクトを作成せずに次のように記述することも可能です。
Cells(2, 3).Value = 10
サンプルプログラム
では簡単なサンプルで試してみましょう。
Sub テスト() Dim i As Integer For i = 1 To 7 Cells(i, 2).Value = i Next i End Sub
上記のマクロを実行すると次のようになります。
Cellsプロパティを使うと、数値でセルの位置が指定できるためプログラム中で動的にセルの位置を変更したい場合などに便利です。
( Written by Tatsuo Ikura )