Excel VBA

Range

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

 セルを表すオブジェクトは 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オブジェクトが取得出来ているという点だけ覚えておいてください。

Sample


Sub テスト()
	Dim range1 As Range
	
	Set range1 = Range("B2")
	range1.Value = 10
	
	Range("B3").Value = "あいうえお"
End Sub

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