トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 次なるイノベーション編: 第7話「金曜日の勉強会」2/4 :オブジェクトの階層構造

やってみよう!Excel VBAで業務改善! 次なるイノベーション編|第7話 「金曜日の勉強会」

オブジェクトの階層構造

オブジェクトの階層構造

(中略)

たとえば、セル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)が指定されたものとみなされるわ」
「…なるほど。便利なようだけど、初心者は混乱しちゃいますね」 「その通り。コードを省略するのがダメってわけじゃないんだけど、
それがどのように処理に影響するかわかった上で、省略することが大事ね」
森川くんが、尊敬の眼差しで岬さんを見つめます。
彼女は視線に気がつくと、はにかみながらテキストに視線を落としました。

一覧にもどる