全階層を使ったオブジェクトの指定方法を読み解く
では、ここからが本題です。
全階層を使ったオブジェクトの指定方法を読み解いてみましょう。
「Book1.xlsm」の「Sheet1」の「A1セル」の「フォント色」を「赤」にする書き方を例として説明します。

まずは答えを書いてしまいます。
Application.Workbooks(“Book1.xlsm”).Worksheets(“Sheet1”).
Range(“A1”).Font.Color = vbRed
基礎4で学びましたが、これはただ単にオブジェクトが並んでいるということではありません。
左から順を追ってみていきましょう。

Application
は、Excel本体そのものを示しています。
次に

ここでWorkbooksはApplicationのプロパティであり、Workbookのコレクション(集まり)です。
ブック名を指定することで、Book1.xlsmのWorkbookオブジェクトを取得できます。
つまり、Workbooksプロパティを使ってWorkbookオブジェクトを取得しています。
実はWorkbooks(“Book1.xlsm”) の動きは、実際にはApplicationオブジェクトのWorkbooksプロパティでWorkbooksオブジェクトを取得してからWorkbookオブジェクトを取得するという2段階になっています。ただ、説明がより複雑になるので、上記のような理解でいいかと思います。
次に、

ここでWorksheetsはWorkbookオブジェクトのプロパティであり、Worksheetの集まりのコレクションです。
シート名を指定することで、Book1.xlsmの中の、Sheet1のWorksheetオブジェクトを取得できます。
ここでも、Worksheetsプロパティを使ってWorksheetオブジェクトを取得しています。
ここなのですが、Worksheetsプロパティで取得できるのは、実はSheetsオブジェクトです。
取得したSheetsコレクションにシート名を指定することで、Worksheetオブジェクトを取得する、という2段階で取得していますが、ここでは上記のように理解すればOKです。
次に、

続けて、WorksheetオブジェクトのプロパティであるRangeを使って、A1セルのRangeオブジェクトを取得します。
これまでと同様に、プロパティを使ってオブジェクトを取得しています。
そして、

A1セルのRangeオブジェクトのプロパティであるFontを使って、A1セルのFontオブジェクトを取得します。
最後に、

FontオブジェクトのプロパティであるColorに赤色を設定します。
※VBAではvbRedは赤色として利用できますが、カラーの指定方法はいくつかあります
ここまでで、
Application.Workbooks(“Book1.xlsm”).Worksheets(“Sheet2”).Range(“A1”).Font.Color = vbRed
を左から読み解いてみました。
基本的に、プロパティでオブジェクトを取得して、という同じことを繰り返しています。
ApplicationがExcel本体そのもの、最後のColorが色を設定するプロパティという以外は、同じ動きをしています。

この「プロパティでオブジェクトを取得する」という動きを理解するのが重要です。
ここが理解できているのであればMicrosoftのVBAヘルプに書かれている内容も理解できるようになります。
何度か読んで、感覚的に理解できるようにしましょう。


