ワードマクロ:VBEに表示されるプロジェクトとモジュールとは?

オフィスVBA
この記事は約3分で読めます。
スポンサーリンク

こんにちは。ワードマクロについての初心者講座です。

今回は、VBEを開くとすぐ左上に表示されるプロジェクトエクスプローラに表示されるプロジェクトについて説明します。

プロジェクトとは

下図は、VBEのプロジェクトエクスプローラの表示例です。
Normalという標準テンプレート(Normal.docm)と、マクロ付き文書「マクロ保存テスト用.docm」を開いているときの表示です。

ツリーの一番上の階層の 「Normal」、「Project(ファイル名)」がプロジェクトです。 

テンプレートファイル、あるいは個別文書ファイルが、一つのプロジェクトとみなされます。

プロジェクトはモジュールで構成されてます

プロジェクトの中に、マクロが構成されるのですが、いきなりドサッと入っているわけではなくて、プロジェクトの中に、モジュールという部品に分けてマクロを管理するようになってます。

上図では、それぞれのプロジェクトが、「Microsoft Word Objects」 の中の 「ThisDocument」 というモジュールと、「標準モジュール」の中の「NewMacros」の2つのモジュールから成り立っています。

ThisDocumentはイベントプロシージャを記述する特殊なモジュール

モジュール「ThisDocument」は、プロジェクトに一つ、はじめから作成されています。
最初は何も記述しておらず、何の動作もしません。

イベントプロシージャを記述します。

イベントプロシージャとは?

イベントプロシージャとは、イベントが起きたときに実行したい処理(プロシージャ)を記述してあるVBAコードのことです。

この場合のイベントとは、例えば、

  • 文書を新規作成したとき
  • 文書を開いたとき
  • 文書を閉じたとき

などがあります。文書を開いたときに、必ず「こんにちは」などとメッセージウィンドウを表示させたいときは、イベント「文書を開いたとき」の処理をVBAで記述することになります。

例えば、「ThisDocument」に下のようなコードを書くと・・・

次回、文書を開いたとき、下図のようなウィンドウが開きます。

標準モジュールフォルダの下にモジュールを作ってマクロを作る!

イベントプロシージャ以外の、いわゆる”普通の”マクロは、「標準モジュール」フォルダの中にモジュールを作って、記述していきます。

その中でもモジュール「NewMacros」は、「マクロの記録」でキー操作を記録するときに使われるモジュールになります。

下図のように、キー操作したものが記録されています。もちろん編集することは可能です。
そしてマクロを作るとき、キー操作したVBAの記録をもとにマクロを作るのはよくやりますし、プログラミングにかかる時間が短縮できておすすめです。

ただ、キー操作を記録したままのコードは、無駄なコードが多かったり、実行中にマウス操作するとうまく実行できなかったりとあるので、修正してから使うほうが良いです。

そのことも今後説明していこうと思います。

まとめ

VBEにおけるプロジェクトとは、テンプレートファイルや、文書ファイルなど、ファイルとほぼ同じ意味となります。

マクロを管理する単位になっており、プロジェクト=制作物 のような位置づけです。

プロジェクトは、モジュールで構成されており、モジュールの中にマクロを記述していきます。

モジュールには、「ThisDocument」というイベントプロシージャを記述するものと、その他一般的なマクロを記述する「標準モジュール」の2種類があります。

 

この記事が気に入ったら
いいね ! しよう

コメント

  1. 平田孝広 より:

    勉強になりいつもお世話になっています。記録マクロでコードを作ってサイトで公開したいのですが貴殿のサイトみたいにVBAコードを公開するにはどうすればいいのですか? テラパッドみたいに

    • わかばやし より:

      コメントありがとうございます。
      僕は、このブログをワードプレスで作っていまして、コードを表示するのにプラグインを使っています。
      Crayon Syntax Highlighter というプラグインなのですが、もう、古くて、新しいPHPバージョンだと、まともに動かないところ、一部、修正して動かしています。
      (参考記事: https://kekaku.addisteria.com/wp/20190705052752)

      ちょっと無理やり感があるのでおすすめできません。

      代わりに、例えば、以下のツールは、僕が使っているプラグインと同じ作者が作成しているようで、最近も更新されています。
      https://ja.wordpress.org/plugins/urvanov-syntax-highlighter/
      僕のワードプレスのバージョンは古く、このプラグインは入れられないっぽいですが、ワードプレス5.7以上であれば、こちらのほうが良いのではと思います。

      すみません、ちょっと、最近いじっておらず、あまりおすすめできませんが、なにかしらの参考になれば幸いです。