shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Word VBA】マクロはどこに保存する(初心者向け解説)

Wordで作業を効率化するためにVBAを使い始めたとき、最初に悩むのが「このコード、どこに保存すればいいの?」という問題です。保存先によってマクロの使える範囲や管理方法が大きく変わるため、保存先の違いを理解しておくことが重要です。

内容:

確認のWordは「Microsoft® Word for Microsoft 365 MSO」 (バージョン 2510)です。

Word VBAのコード保存先は主に2つ

1. ThisDocument(文書専用)

ThisDocumentは、現在開いているWord文書に紐づいたVBAコードの保存先です。Visual Basic Editor(VBE)で「Microsoft Word Objects」内の「ThisDocument」を開くと、その文書専用のコードを書くことができます。

この保存先の特徴は、マクロがその文書に限定されることです。これは、特定の文書にだけ適用したい処理に非常に適しています。
また、文書とコードが一体化しているため、文書とマクロを併せて管理したいときに便利です。ただし、汎用的な処理を複数の文書で使いたい場合には不向きです。

2. Normal.dotm

 Normal.dotmは、Wordの標準テンプレートファイルで、すべてのWord文書に共通して適用されます。Visual Basic Editorでは「Normal」として表示され、ここに保存されたマクロは、Wordを起動している限り、どの文書でも利用可能です。
たとえば、日付の自動挿入、定型文の入力、フォントや段落スタイルの一括変更など、日常的に使うマクロを登録しておくと非常に便利です。ショートカットキーと組み合わせれば、作業効率が格段にアップします。
以下の画像は、Normal.dotmに保存されたマクロの一例です。VBE上で「Module1」に記述された「テストマクロ」は、Word全体で利用可能です。

テストマクロが、Normalの標準モジュールに保存されている

Visual Basic EditorでNormal.dotmに保存されたマクロの例

このように、Normal.dotmに保存することで、どの文書でも「テストマクロ」を実行できるようになります。

マクロ記録時の保存先選択画面

Wordでは、マクロを記録する際に保存先を選択することができます。以下の画像は「マクロの記録」ダイアログです。

保存先を「すべての文書(Normal.dotm)」または「現在の文書(文書1)」から選べます

マクロ記録時の保存先選択画面


この画面では、マクロ名の入力に加えて、保存先を「すべての文書(Normal.dotm)」または「現在の文書(文書1)」から選べます。

どの文書でも利用したいマクロは、「すべての文書」に保存します。

保存先の使い分けと実務例

それぞれの保存先には明確な役割があります。以下のように使い分けると、マクロの管理がスムーズになります。

項目 ThisDocument(文書専用) Normal.dotm(標準テンプレート)
利用範囲 現在の文書のみ すべてのWord文書
主な用途 文書固有の処理 汎用マクロ、日常業務支援(定型文挿入、日付入力など)
メリット 文書とマクロを一体化して管理しやすい どの文書でも使える。ショートカットやボタンに割り当てで利用しやすい。
注意点 汎用性が低い、文書を削除するとマクロも失われる Normal.dotmにのみマクロが保存されるため、バックアップが特に重要となる

セキュリティとバックアップの注意点

  • VBAマクロは便利な反面、ウイルスの温床になることもあります。特に外部から受け取った文書に含まれるマクロは、必ず信頼できるソースか確認が重要です。
  • Normal.dotmに保存したマクロは、Wordの再インストールやPCの初期化で失われる可能性があります。定期的にNormal.dotmファイルのバックアップが重要です。

以上、Word VBAのマクロ保存先の説明でした。