拙著『Excel VBAユーザーのためのWord VBA入門(1)』では、Excel VBAの経験がある方に向けて、Word VBAのもっとも基本的なオブジェクトDocument・Range・Selectionと、関連するいくつかのオブジェクトについて解説しています。
Excel.WorkbookとWord.Documentの比較
序盤の「chapter 2. Documentは文書を表す」では、Excel VBAのWorkbookオブジェクトと、Word VBAのDocumentオブジェクトを比較しながら、学習を進めています。
ExcelのWokbookとWordのDocumentは似ている部分が結構あり、ExcelのWokbookを知っていれば、その類推からWordのDocumentを理解できるはずです。
似ていることから理解が進んできたら、細かな違いにも注目していただきたいと考えています。
Workbook.NameとDocument.Nameの違い
例えば、Workbook.NameプロパティとDocument.Nameプロパティの違いです。
「2-2. 単なるデータを返すDocumentの特徴的なプロパティ」では、Word VBAのDocument.Nameプロパティが、既定メンバーであることに触れています。
Word VBAの場合、Documentオブジェクトに用意されているNameプロパティは既定メンバーですから、(おすすめはしませんけれど)「.Name」を省略した以下のようなコードでも、アクティブなWord文書の名前がメッセージボックスに表示されることをご紹介しています。
このことから推測すると、Excel VBAのWorkbook.Nameも既定メンバーなのかなと考えてしまうかもしれませんが、違います。
ExcelのWorkbook.Nameは既定メンバーではない
オブジェクトブラウザーで、Workbookオブジェクトに用意されているNameプロパティを確認しても、Word VBAのDocument.Nameのような「既定メンバー」表示は見当たりません。
試しに、以下のようなSubプロシージャを実行しても、
MsgBox ActiveWorkbook
End Sub
「実行時エラー ’438’: オブジェクトは、このプロパティまたはメソッドをサポートしていません。」実行時エラーが発生します。
このこと自体を知ったところで、すぐに何かに役立つわけではありません。似た部分の多いExcelのWorkbookとWordのDocumentですが、当然ながら違うのだなあと思うだけかもしれません。
ただ、こういうことを面白がることが、学習には大切だと私は考えています。
最終更新日時:2021-03-02 05:57
Home » 電子書籍 » Excel VBAユーザーのためのWord VBA入門 » ExcelのWorkbook.Nameは既定メンバーではない