ThisWorkbookとは何者なのか
ThisWorkbookとは何者なのか
案外、初歩的なことがわかっていない、ということを痛感したので、後の戒めのためにも残しておくことにした。
「ThisWorkbook
」を使うことは非常に多い。VBAの場合、コードが書かれてあるブックが他のブックを操作する場面というのはよくある。そんなとき、コードが書かれてあるブックを容易に取得できる「ThisWorkbook
」は非常に便利だ。
で、何者なの?
Parentプロパティを調べてみる
まずは、イミディエイト・ウインドウに
?ThisWorkbook.Parent
と打ち込んで、[Enter]を殴打。
このように、Microsoft Excel
が返った。
オブジェクト ブラウザーで調べてみる
次に、オブジェクト ブラウザーで、ThisWorkbook
を検索。
Application
クラスのプロパティであることは一目瞭然。
結論
「ThisWorkbook
」というのは、Application
オブジェクトのプロパティです。
オブジェクト・プロパティを指定する式を書くときに、Application
オブジェクトから書くことが滅多にないから盲点になっていた、という話です。
ThisWorkbook.Worksheets("Sheet1")
は、
Application
オブジェクトのThisWorkbook
プロパティを参照して、コードを書いているこのExcelブックをWorkbook
オブジェクトとして取得。
Workbook
オブジェクトのWorksheets
プロパティを参照して、Worksheets
コレクションオブジェクトを取得。
Worksheets
コレクションのインデックスに「Sheet1
」を指定して、「Sheet1」シートをWorksheet
オブジェクトとして取得。
このように理解すればよいのだろうか。
注意
ここで言う「ThisWorkbook
」というのは、「ThisWorkbook
モジュール」のことではございません。