ドキュメントに ActiveX コントロールがある場合とない場合で、テンプレート ファイルMe
の VBA コードのキーワードの動作が異なることに気付きました。
- ActiveX コントロールを含むドキュメント:
Me
テンプレートから作成された新しいファイルを参照します。 - ActiveX コントロールのないドキュメント:
Me
新しいファイルの代わりにテンプレートを参照します。
この奇妙な動作を示すために、2 つのサンプル ファイルを作成しました。
両方のファイルは同一です。唯一の違いは、一方にはボタンがあり、もう一方にはありません。両方のファイルの VBA コードは次のとおりです。
Private Sub Document_New()
Selection.TypeText "Me keyword is referencing """ & Me.Name & """."
End Sub
これらのテンプレートから新しいファイルを作成すると、結果が異なることがわかります。
WithActiveX.dotm コンテンツは
Me キーワードは「Document1」を参照しています。<-- 上記のコードによって生成された文字列
一方、WithoutActiveX.dotm コンテンツは
Me キーワードは「WithoutActiveX.dotm」を参照しています。<-- 上記のコードによって生成された文字列
いくつかのテストを行って、不一致の原因は ActiveX コントロールの存在であると結論付けました (コントロールに関連付けられたコードはなく、単にドキュメントに存在するだけです)。
これは仕様によるものですか、それとも単なるバグですか?
EDIT 2017-06-13 : ここで説明されているバグは部分的に修正されたようですが、まだ再現可能です。これらのテンプレートのいずれかを使用して新しいドキュメント (空白のドキュメントなど) を作成する前に、Word のインスタンスが開かれている場合にのみ発生します。