Word VBAを使用する際に「このメンバー識別子は既にオブジェクトモジュールの中に存在しています」というエラーの原因と対応例の備忘録です。
内容:
動作確認のWordは「Microsoft® Word for Microsoft 365 MSO」(バージョン2502)です。
エラーの内容
マクロを実行しようとすると、「コンパイルエラー:このメンバー識別子は既にオブジェクトモジュールの中に存在しています」というエラーです。
メンバー識別子とは?
メンバー識別子とは、VBAにおける変数、定数、関数、プロパティ、メソッドなど、オブジェクトやモジュール内でそれぞれを識別するための名前のことです。これにより、プログラム内で特定の要素を参照し、操作することが可能になります。
宣言されたすべての要素には名前が付いています。これは識別子とも呼ばれ、コードが参照するために使用するものです。
つまり、前述のエラーメッセージは、何かしらの名前が既に他の部分で利用されていて、重複しているということです。
エラーの対応としては、同じモジュール内で名前が重複していないかを確認します。
対応例
原因は名前の重複ですが、見つからない時もあると思います。
その場合は、名前を変更するなど試してみます。
なお、WordのVBAの場合で、Normalテンプレートの「ThisDocument」と個別ファイルの「ThisDocument」に同じマクロ名のコードを記載があるとき、前述のとおり「このメンバー識別子は既にオブジェクトモジュールの中に存在しています」エラーが発生しました。
意図的でない場合は、Normalテンプレートの「標準モジュール」内にコードを記載した方が良いです。
以上、WordのVBAで、コメントで選択された文章を修正するマクロの動作確認でした。