オブジェクトの階層構造
オブジェクトの階層構造
(中略)
たとえば、セルA1に数値を代入するには
Range("A1").Value = 123
としますが、セルA1は複数のワークシートに存在します。そこで、セルA1を正確に示すには
Worksheets("Sheet1").Range("A1").Value = 123
とワークシートも特定しなければなりません。
さらに、Excelで複数のブックを開いている場合には、
それぞれのブックにワークシート「Sheet1」が存在する可能性もあります。
「Sheet1」のセルA1を間違いなく指定するには、次のようにブックも明らかにしなければなりません。
Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1").Value = 123
(中略)
しかし、セルを操作するたびにワークシートやブックを特定しなければならないのは煩雑です。
そこでVBAでは、上位オブジェクトを省略することが許されています。
< ベーシック公式テキスト P40~41 >
「他にもそうね……。
オブジェクトには既定のプロパティってのがあって、プロパティの記述を省略したときは、
既定のプロパティが指定されたものとみなされるの。
あと、変数の宣言で型の指定を省略したときは、Variant型が指定されたものとみなされるし、
プロシージャの呼び出しで、引数の値渡し、参照渡しの指定を省略したときは、
参照渡し(ByRef)が指定されたものとみなされるわ」
「…なるほど。便利なようだけど、初心者は混乱しちゃいますね」
「その通り。コードを省略するのがダメってわけじゃないんだけど、
それがどのように処理に影響するかわかった上で、省略することが大事ね」
森川くんが、尊敬の眼差しで岬さんを見つめます。
彼女は視線に気がつくと、はにかみながらテキストに視線を落としました。