最近はWinAutomationなどRPAが巷で脚光を浴び始めている?のでWinAutomationを使ってみました。
例えばですが、発注書が沢山来る営業さんなどはメールから添付ファイルを自動でどこかに保存できれば色々楽ですよね。
と、いうことで。
Outlookのメールフォルダからメールの添付ファイルを保存する方法の紹介です。
サンプルのファイルはこちらからダウンロード可能です。
Outlookから添付ファイルを取得する処理の概要
メインの処理概要を簡単に記載します。
1.Outlookを開く
2.未読メールの添付ファイルを指定したフォルダに保存する
3.メールの件数分ループ
3.1フォルダを作成し、添付ファイルを移動する
4.Outlookを閉じる
解説
それぞれのポイントとなる処理について解説します。
Sub_メールから添付ファイル取得に記載している処理です。
メールの添付ファイル取得(Retrieve Email Massages From Outlook)
Sub_メールから添付ファイル取得の7行目に書いている処理です。
条件に一致する未読メールを取得する処理です。
設定画面の解説です。
・Outlook Instanceは事前に作成したものをセットします。
・Accountはメールアカウント名を入れます。
Googleなら、メールアドレスをそのまま入れてください。
※Sub_変数値設定ので記載している変数でセットしています。
・Retrieveは未読、既読、すべてを設定できます。
・Mark As Readをチェックすると、未読メールが既読になります。
・…that Mach the following criteriaはそれぞれ条件を入れます。
ここでは件名に「Today’s Order」になっているメールを条件にしています。
・Attachmentsは添付ファイルを保存するかしないかを選べます。
保存先はフォルダパスを設定する必要があります。
各メール添付ファイル(RetrievedEmails[].Attachments)
Retrieve Email Massages From Outlookをすると、指定したフォルダに添付ファイルが自動で保存されます。
そのファイルをどうやって指定してフォルダに保存するかと言うと
RetrievedEmails[番号].Attachmentsです。
右下のRetrievedEmailsの変数をクリックすると、メールの番号(0が一番最初)ごとに添付ファイルや件名などが格納されています。
RetrievedEmails.Attachmentsであれば、5番目のメールの添付ファイルが保存されたときのパスが格納されています。
フォルダ作成(Create Folder)
Create Folderでは、[連番] [年月日] [時分秒]で作成しています。
連番を振っている理由は、WinAutomationのフォルダ作成処理が速いので、時分秒ではフォルダが被ってしまうためです。
10個くらいであれば、1秒立たずに作成されるため、連番を振っています。
まとめ
プログラミングで記述するよりはるかに楽に処理が作れるので、ぜひ使ってみて下さい。
始めてWinAutomationのことをブログに書くのでどんな書き方が分かりやすいか微妙です。。。
まだまだ、WinAutomationの研究をしていこうと思います。
https://www.ex-it-blog.com/RPA-mail-folder