Cellsプロパティを使ったRangeオブジェクトの取得

Range オブジェクトを取得するには Range プロパティを使用する方法の他にワークシートなどの Cells プロパティを使っても Range オブジェクトを取得できます。ここでは Excel VBA で Cells プロパティを使って Range オブジェクトを取得する方法について解説します。

(Last modified: )

Cellsプロパティを使った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プロパティ

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

-- --

Excel VBA で Cells プロパティを使って Range オブジェクトを取得する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。