「vba word this」
「word vba thiswork」
のような検索キーワードで、このサイト『インストラクターのネタ帳』へ時折アクセスがあります。
Word VBAで、Excel VBAのThisWorkbook的なプロパティを探していた方による検索でしょうか。
Excel VBAではThisWorkbookを使うと、コードの書かれているブックを表すWorkbookオブジェクトを取得できます。このThisWorkbookと同じ役割のプロパティを、Word VBAで探していた方による検索かなと想像しています。
Excel VBAのThisWorkbookをプロパティと理解している方が多いと思いますが、厳密にはオブジェクトの名前であるケースがほとんどのはずです。この記事は、Excel VBAのThisWorkbookをプロパティとして書いています。
MacroContainerでコードの書かれている文書・テンプレートを取得
結論からお伝えするとWord VBAの場合、Applicationオブジェクトに用意されているMacroContainerプロパティで、
コードの書かれている文書やテンプレートを表すオブジェクトを取得できます。
Word VBAのMacroContainerプロパティは、Excel VBAのThisWorkbookプロパティと同様にグローバルメンバーですから、
「Application.」を省略していきなり「MacroContainer」とコードを書き始められます。
プロシージャの含まれる文書・テンプレートを取得するサンプル
以下のSubプロシージャを実行すると、このプロシージャの書かれている文書またはテンプレートの名前と保存先のパスが、メッセージボックスに表示されます。
MsgBox MacroContainer.Name & vbCrLf & MacroContainer.Path
End Sub
MacroContainerの戻り値はObject
Word VBAの場合、プロシージャの保存先はWord文書かテンプレートファイルです。
そのため、オブジェクトブラウザーの詳細ペイン等で確認できるとおり、MacroContainerプロパティの戻り値は「As Object」と定義されています。
Excel VBAのThisWorkbookプロパティが「As Workbook」と、必ずWorkbookオブジェクトを返すように定義されているのとは異なります。
最終更新日時:2020-11-25 17:14
Home » ワードマクロ・Word VBAの使い方 » Documentオブジェクト » Word VBAでThisWorkbook的なプロパティは?-MacroContainer