コレクションやオブジェクトを返すプロパティ
オブジェクトを指定する構文で記述されるコレクション名。実は、これ、プロパティです。先ほどの例で言えば、「Sheets」は「Sheetsプロパティ」です。このようなプロパティは、コレクションを返します。「返す」とは、結果をこちら側へ渡すイメージ(こちら側としては結果を得るイメージ)です。つまり、「Sheets」の部分でWorksheetオブジェクトやChartオブジェクトのコレクションを得ることができるというわけです。そして、得られたコレクションの中から、指定されたオブジェクト名を持つオブジェクトだけが取り出されて操作の対象となります。
前回の記事で、プロパティとは「オブジェクトの性質や属性を設定したり取得したりするキーワード」と紹介しましたが、このように、コレクションを返すプロパティが存在します。同様にオブジェクトを返すプロパティも存在します。
また、「オブジェクトに対する動作を命令するキーワード」であるメソッドの中にも、コレクションやオブジェクトを返すメソッドが存在します。
昔は、コレクションやオブジェクトを返すキーワードは、プロパティやメソッドとは別なものとして分類されていたようですが、現在はプロパティかメソッドのいずれかに分類されています。
どのように分類されているか、ということを全て把握する必要はありませんが、プロパティやメソッドの中に、コレクションやオブジェクトを返すものがある、という認識を持ってほしいと思います。この点を押さえておくだけで、VBAのヘルプを読みこなす力が違ってきます。
以上より、オブジェクトを指定する構文をより正確に書き換えると、次のようになります。
代名詞のようなプロパティ
マクロ記録で作成されたVBAプログラムでは、「Selectionプロパティ」が頻出します。このプロパティは、オブジェクトの種類に関わらず「アクティブなウィンドウで選択されているオブジェクト」を返すプロパティです。英語の「it」や「This」といった代名詞のようなキーワードで、Selectionプロパティが何を指しているのか、注意しながら読む必要があります。こういった代名詞のようなプロパティは他にも種類があって、マクロ記録で作成されたVBAプログラムで頻繁に登場します。ここで、主なものをまとめてチェックしておきましょう。
なお、アクティブなオブジェクトとは、「現在、操作対象になっているオブジェクト」のことです。したがって、「選択されているオブジェクト」の中に「アクティブなオブジェクト」も含まれます。
例えば、下図の場合、セルB2~セルD4は「選択されているセル」で、そのうち、セルB2が操作対象になっているセル、つまり「アクティブなセル」です。
下図の場合、Sheet1~Sheet3が「選択されているワークシート」で、そのうち、Sheet3が操作対象になっているワークシート、つまり「アクティブなワークシート」です。
>続いてオブジェクトの階層構造について説明します。