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

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

【Module1】受信したメールの添付ファイルに日付と連番を付けて自動保存するマクロ

Outlook研究所さんの記事の解説です。

1日1記事を目標にするとは言ったものの、平日も飲み会だったり、開発する環境が整ってなかったりで、なかなか上手くいかないものですね。

言い訳はこの辺で終わらせて、解説に移ります。

 

第1回目のタイトルは

【受信したメールの添付ファイルに日付と連番を付けて自動保存するマクロ】

です。

 

普段の業務でファイルのやり取りが多い人は使ってみるとかなり有効なマクロだと思います。

本来、セキュリティを考慮すると、むやみにファイルを添付してメールを送付するのはお勧めできないのですが、そんなことも言ってられない人も沢山いらっしゃるのが現実です。

※現在、セキュリティチームで働いているので、そのうち「どのような危険が潜んでいるか」「どのようにメール業務を脱却するか」なども記事にしたいです。

 

それでは本題に入ります。

ソースコードOutlook研究所さんの記事から参照してください。

受信したメールの添付ファイルに日付と連番を付けて自動保存するマクロoutlooklab.wordpress.com

 

また、マクロを作成する前に - 初心者プログラマのハルコム日記で紹介した内容に従って、ソースコードを貼り付けてください。

 

ここで、追加で1点修正が必要です。

 「SaveAttachmentsWithDate」内のSAVE_PATHで添付ファイルの保存先フォルダを指定していますので、任意のフォルダパスに指定してください。

 ただし、注意が必要です。よく見ると

 strFileName = SAVE_PATH & strDate & Format(iSerial, "0#_") & .FileName

 となっています。

 「フォルダパス+日付+連番+ファイル名」で保存先とファイル名を指定していますが、SAVE_PATH & strDateとなっています。

 この場合SAVE_PATHの最後に¥を指定してあげないと、フルパスが成り立ちません。

 ここだけ注意すればOKです。

f:id:harucomblog:20180811003823p:plain

 

まずは「Application_NewMailEx」の適当な場所でブレークポイントを置いてみてください。

テストとして、ファイルを添付したメールを自分自身に送付してみます。

f:id:harucomblog:20180811003811p:plain

 

メール受信後、「Application_NewMailEx」のブレークポイントで止まっていると思いますので検証していきましょう。

f:id:harucomblog:20180811003756p:plain

 

メッセージオブジェクトがあれば「SaveAttachmentsWithDate」を呼び出すと書いているように見えます。

これだと、絶対に「SaveAttachmentsWithDate」が呼ばれちゃうのでIf分必要なのかな?と思っちゃいました。教えて、偉い人!(解説するとか言いながらお恥ずかしい)

 

「SaveAttachmentsWithDate」ではFor Each objAttach In objMsg.Attachmentsで

添付ファイルの数だけファイルを保存する処理を行っています。

この中で、日ごとの連番を取得する処理(GetSerialForToday)がクセがあるかもしれませんね。

f:id:harucomblog:20180811003803p:plain

 

ただ、解説を書こうと思ったら、丁寧に細かくコメントされていて、出しようがありません。笑

f:id:harucomblog:20180811003806p:plain

 

処理が完了すると、指定したフォルダの中に添付のファイルが保存されていることが確認できました。

f:id:harucomblog:20180811020619p:plain

 

ここからさらに、受信したメールを自分自信に再送します。

f:id:harucomblog:20180811003816p:plain

 

すると連番が増えていることがわかりますね。

f:id:harucomblog:20180811020622p:plain

 

今日はここまでとします。

めっちゃ疲れて、最後の方が雑になっちゃいました。。

なかなか大変な作業ですね。

 

まだ1記事目、めげずに頑張ります。

 

これ違うだろ、この辺わからんからまじめに解説しろなどのコメントを頂ければ誠心誠意対応します。

 

お休みなさい。

 

byハル。