Home » 電子書籍 » Excel VBAユーザーのためのWord VBA入門 » ExcelのWorkbook.Nameは既定メンバーではない

拙著『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文書の名前がメッセージボックスに表示されることをご紹介しています。

MsgBox ActiveDocument

このことから推測すると、Excel VBAのWorkbook.Nameも既定メンバーなのかなと考えてしまうかもしれませんが、違います。

ExcelのWorkbook.Nameは既定メンバーではない

オブジェクトブラウザーで、Workbookオブジェクトに用意されているNameプロパティを確認しても、Word VBAのDocument.Nameのような「既定メンバー」表示は見当たりません。

試しに、以下のようなSubプロシージャを実行しても、

Sub sample()
 MsgBox ActiveWorkbook
End Sub

「実行時エラー ’438’: オブジェクトは、このプロパティまたはメソッドをサポートしていません。」実行時エラーが発生します。

このこと自体を知ったところで、すぐに何かに役立つわけではありません。似た部分の多いExcelのWorkbookとWordのDocumentですが、当然ながら違うのだなあと思うだけかもしれません。

ただ、こういうことを面白がることが、学習には大切だと私は考えています。

最終更新日時:2021-03-02 05:57

[スポンサードリンク]

Home » 電子書籍 » Excel VBAユーザーのためのWord VBA入門 » ExcelのWorkbook.Nameは既定メンバーではない

「Excel VBAユーザーのためのWord VBA入門」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.