初心者プログラマのハルコム日記

中堅SIerで働くハルコムの日記です。業務で習得した知識を多くの人と共有できたら嬉しいです。趣味で便利ツールを作成したりもしていますので、「こんなのがあったらいいな」ってツールの要望があればコメントください。できるだけお力になれるように頑張ります。

マクロを作成する前に

【Module1】を書き終わって思ったのですが、似たような作業は1つの記事に書いてしまって、都度参照してもらうことにしよう。

そうしないと、1つの記事がダラダラと長くなる。。

 

通化した方がいいと思ったことはこの記事を随時更新してお知らせしたいと思います。

 

1.「Application_NewMailEx」イベントについて

 「Application_NewMailEx」はメールを受信した際に発生するイベント処理です。標準モジュールに記載しても動作せず、「ThisOutlookSession」に記載をする必要があります。

 そして、Outlook研究所さんのソースコードでは、ほとんどのプロシージャが「Private」で指定されています。「Private」を使用すると、他のモジュールのプロシージャからの呼び出しができません。つまり、Outlook研究所さんのソースコードは「全てのコードをThisOutlookSessionに記載する」前提でソースが記載されているものと思っています。(間違っていたらゴメンナサイ。コメントで指摘してください。)

 

 本ブログでは、大量のマクロを標準モジュールのModule1,Module2と命名して紹介します。そのため「Application_NewMailEx」で呼び出しているプロシージャが「Private」で指定されていると、エラーになってしまいます。

そのため、実際にソースコードをコピペして動かす際には、以下のルールを守ってください。

①「Application_NewMailEx」のみ「ThisOutlookSession」に貼り付ける。

②その他のプロシージャは同一標準モジュール内に貼り付ける。

③「Application_NewMailEx」で呼び出しているプロシージャの「Private」を削除する。※

※Privateを削除するならPublicに変更した方がいいんじゃないかとも思っているんですが、とりあえず問題なく動作しているのであまり気にしないことにします。

 

 以下、Module1で紹介するコードを例にしています。

f:id:harucomblog:20180811154312p:plain

f:id:harucomblog:20180811154318p:plain