この記事では、Power Automate for Desktop(以下:PAD)で、特定のフォルダ内の複数のファイルを添付してメールを送信する方法について解説します。
作成するPower Automate Desktopフロー
3つのアクションだけで作ります。とっても簡単に作成できます。
▲今回は[C:\Users\user\Desktop\新しいフォルダー]の中のPDFファイルだけ添付します。
▲今回作成するフローです。
Power Automate Desktopフローを作成する
▲左側のアクションペインから、[フォルダ]の中の[フォルダ内のファイルを取得]アクションをドラッグ&ドロップして一番上に追加します。
▲パラメータを入力します。
- フォルダ:メールに添付したいファイルが保存されているフォルダをしてください。私はC:\Users\user\Desktop\新しいフォルダーと入力します。
- ファイルフィルター:取得するファイルにフィルターをかけることができます。私はPDFファイルだけを取得したいので[*.pdf]と入力しました。
[*(アスタリスク)]はワイルドカードです。ワイルドカードはどんな文字列が何文字きてもかまいませんよ、という意味になります。つまり [*.pdf] は、「ファイル名は問わないけど拡張子は.pdfのファイル」という意味になり、フォルダ内のすべてのPDFファイルを取得することができます。
このアクションでは%Files%という変数が作成され、ファイルの一覧はそこに格納されます。
ファイルフィルターに使用できる記号
ファイルフィルターは*(アスタリスク)と?(はてなマーク)を使って表現します。少し難しく感じるかもしれませんが、色々試してみて慣れてください。
記号 | 意味 |
---|---|
* | 任意の0文字以上の文字列 |
? | 任意の0文字~1文字の文字列 |
ファイルフィルターの使い方とサンプル
下記のテストフォルダをサンプルとしてファイルフィルタの使用してファイルを取得する例をいくつか紹介します!
- テストフォルダ
- Document.docx
- Documents.docx
- Documents_2021-11-12.docx
- Documents.xlsx
- test.xlsx
ファイルフィルターの例 | マッチするファイルの例 | マッチしないファイルの例 |
---|---|---|
* | すべてのファイル | なし |
Document?.docx | Document.docx Documents.docx | Documents_2021-11-12.docx Documents.xlsx test.xlsx |
Document*.docx | Document.docx Documents.docx Documents_2021-11-12.docx | Documents.xlsx test.xlsx |
Document* | Document.docx Documents.docx Documents_2021-11-12.docx Documents.xlsx | test.xlsx |
*.xlsx | Documents.xlsx test.xlsx | Document.docx Documents.docx Documents_2021-11-12.docx |
Document? | なし | すべてのファイル |
▲左側のアクションペインから、[Outlook]の中の[Outlookを起動します]アクションをドラッグ&ドロップで追加します。
▲今回はこのアクションのパラメータは編集せず、デフォルトのまま使用します。このアクションで起動したOutlookは、自動生成される%OutlookIntance%というインスタンス変数に格納されます。Outlookからメール送信する際にはこのインスタンス変数に指示を送りますので変数の名前を憶えておいてくださいね。
▲左側のアクションペインから、[Outlook]の中の[Outlookからメールメッセージの送信]アクションをドラッグ&ドロップして一番上に追加します。
- Outlookインスタンス:%OutlookInstance%(STEP2で起動したOutlookが格納されているインスタンス変数を指定)
- アカウント:送信元メールアドレスを入力します。
- 宛先:宛先メールアドレスを入力します。
- 件名:メールの件名を入力します。
- 本文:メールの本文を入力します。
- 添付ファイル:%Files%(STEP1の「フォルダー内のファイルを取得」アクションの変数)
※今回はテストのために送信元と宛先アドレスを自分自身の同一のアドレスにしています。
フローをテストしてみよう!
フローが作成できたのでテストしていきます!
テストの際は「アクションごとに実行」を使いましょう。「アクションごとに実行」は、アクションをひとつずつ実行することができます。各アクションの正常動作を確認するのに便利です。
1回クリックすると「アクションごとに実行」モードになり、もう一度クリックすると1番目のアクションが実行されます。
2回クリックすると最初のアクション「フォルダー内のファイルを取得」が実行されてFiles変数に格納されます。正常に取得できたかFiles変数の中身を確認してみましょう。変数を確認するには画面の右側の変数ペインを確認します。
▲右側変数ペインにある「Files」をダブルクリックします。
▲アクションの実行によって取得したファイルが表示されます。確認すると図のようにPDFファイルのみが正常に取得出来ていることが分かりました。
もし、Files変数の中身に何も表示されていなかったり、狙ったファイル以外のファイルが含まれていたりする場合は「フォルダー内のファイルを取得」アクションのファイルフィルターの設定が誤っている可能性があります。「アクションごとに実行」を停止してファイルフィルターの設定を確認してみてください。「アクションごとに実行」を停止するには画面上部の「□(停止ボタン)」をクリックします。
Files変数はリスト型の変数です。リストと呼んだりもします。リスト型変数は下記の記事でざっくり解説していますのでよろしければご覧ください。
もう一度クリックすると2番目のアクション「Outlookを起動します」が実行されます。Outlookが起動したら成功です。
もう一度クリックすると3番目のアクション「Outlookからのメールメッセージの送信」が実行されます。Outlookからメールが送信されます。宛先メールのメールボックスを確認してメールが届いているか確認してみてください。
2つ以上のリストを添付する場合は?(%Files%と%Files% )
「フォルダの中のファイルを取得」アクションを2つ使って%Files%と%Files1%を添付する場合は?
「Outlookからのメールメッセージの送信」アクションにリスト変数を2つ添付ファイルとして指定することはできません。ですので2つのリストを添付ファイルとして指定したい場合は、事前に2つのリストを1つのリストに合体させちゃいましょう。
複数のリストをひとつにするには変数グループの中にある「リストの結合」アクションを使います。リストの結合アクションから出力された変数を添付ファイルとして指定すればOKです。
フォルダをメールに添付したい場合は?
フォルダを添付ファイルとして指定することはできません。フォルダを添付したい場合はzipなどに圧縮してから添付しましょう。「圧縮」グループの中の「zip」ファイルアクションを使いましょう。
zip圧縮してからメール添付する場合は?
「圧縮」グループの中の「zip」ファイルアクションを使いましょう。ファイルまたはフォルダを圧縮できます。
期間を抽出してメールを取得する方法は?
まとめ
以上で、Outlookに添付ファイルを付けてメール送信する方法について解説しました。
今回はFilesというリスト型変数を扱いました。次の記事ではこのリスト型変数の中にファイルを追加したり削除したり、もう少し詳しく解説したいと思います。
Power Automate学習教材
▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。
▲Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。
▲Power Automate クラウドフローの入門書です。初心者の方には図解も多く一番わかりやすいかと個人的に思っています。
Microsoft 365/ Power Automate / Power Platform / Google Apps Script…
▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります。頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。