セルの参照

広告

セルに対する様々な操作を行う上で、対象となるセルをオブジェクトとして取得することがまず必要になります。

セルを表すオブジェクトはRangeオブジェクトです。Rangeオブジェクトを取得する方法はいくつかありますが、まずは元になっているWorksheetオブジェクトなどのプロパティを使ってRangeオブジェクトを取得する方法です。使用するプロパティは「Range」プロパティです。

Dim range1 As Range

Set range1 = オブジェクト.Range("A1")
range1.Value = 10

「Range」プロパティの括弧の中にダブルクオーテーション("")で囲んだ中にExcelのA1形式でセルの位置を記述することで、対象オブジェクトに含まれるRangeオブジェクトを取得することができます。(オブジェクトはWorksheetの他に、既にあるRangeオブジェクトなどでも使えます)。

今までのサンプルで使っていたのはオブジェクトを省略し(省略すると現在アクティブのワークシートになります)、Range型の変数を別途用意せずにまとめて記述していました。

Range("A1").Value = 10

普段はあまり気にする必要はありませんが、「Range("A1")」と書かれていた場合は、これがRangeオブジェクトそのものではなく、ワークシートなどのオブジェクトのRangeプロパティであり、このプロパティによってRangeオブジェクトが取得出来ているという点だけ覚えておいてください。

Dim range1 As Range

Set range1 = Range("A1")
range1.Value = 10

サンプルプログラム

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

testcellrange1.bas

Sub テスト()

    Dim range1 As Range

    Set range1 = Range("A1")
    range1.Value = 10

    Range("C3").Value = "日本語"

End Sub

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

Rangeオブジェクト

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

( Written by Tatsuo Ikura )