見出し画像

VBA入門-4/Rangeオブジェクトとセル参照・代入

こんにちはロック204チャンネルです。
今回は「VBA入門第4回、Rangeオプションとセル参照・代入」についてお送りします。

セルに値を入れるには、Rangeオプションを使用します。
こちらにマクロ例を示します。
マクロを実行するとA1とA2のセルに「おはようございます。」と表示するプログラムです。

先ほどのプログラムを改めて表示しています。
上のRangeでは、”Range()”の後、”=”で直接文字列を入れていますが
それに対して、下のRangeオブジェクトでは、”.Value”をつけて文字列を入れています。
どちらもセルに値を入れる使用法ですが、Valueプロパティを使用する場合と使用しない場合があります。
セルに値を入れる場合には、Valueプロパティを省略することができます。
VBAの正式な構文では”オブジェクト.プロパティ”のように書きますが、このようによく使用されるプロパティでは、省略がゆるされた場合もあります。

Rangeオブジェクトでセルを指定する場合には、括弧の中にセル座標を文字列として指定しますが、セルに名前がついている場合には、セルの名前を代わりに使用することができます。
こちらの例では、A4のセルに”セル01”と名前を付けている場合の例を示しています。
“macro03” では、Rangeの中にセルの名前を指定して使用しています。
座標値を入れるのに比較して、セル名を使用すると座標がわからなくても簡単にセルを参照したり、代入することができます。

他のシートのセルの値を参照する例をここに示しています。
例えば、”Sheet2”の”A1”を参照したい場合
右のように” Worksheets(“Sheet2”).Range(“A1”)”と書きセルを参照することができます。

また、シートを指定してセルに値を入れることができます。
このマクロでは、” Worksheets(“Sheet2”).Range(“A2”)”でワークシートと座標を指定し「値」を代入しています。

“Worksheets”コレクションの使いかたですが
アクティブシート上でRangeオブジェクトを使用する場合には、”Worksheets”を省略しても良いのですが、
ワークシートを特定してRangeオプションを使用すると、指定したワークシートに値を代入したり参照することができます。

名前付きのセルの場合、他のシートより「値」を設定する場合に、”Worksheets”コレクションを使用しなくてもRange()内にセルの名前を指定するだけで、どのワークシートからも指定したワークシートに「値」を設定することができます。



この記事が気に入ったらサポートをしてみませんか?