単一セルの参照

広告

前回のページではワークシートなどの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

サンプルプログラム

では簡単なサンプルで試してみましょう。

testcellrange4.bas

Sub テスト()

    Dim i As Integer
    
    For i = 1 To 7
        Cells(i, 2).Value = i
    Next i
    
End Sub

上記のマクロを実行すると次のようになります。

Cellsプロパティ

Cellsプロパティを使うと、数値でセルの位置が指定できるためプログラム中で動的にセルの位置を変更したい場合などに便利です。

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)