松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第47回
条件分岐の処理ができるのは「条件分岐」アクションだけじゃない!
「スイッチ」アクションで3種類以上の添付ファイルを自動分類/フォルダー保存する
2025年03月17日 11時00分更新
こんにちは、Microsoft MVP(Business Applications)の松本典子です。
本連載の第35回 では、メールに添付されたファイルを自動保存するワークフローを作成する際に、添付ファイルの種類が「PDF」と「その他」の場合で、保存先フォルダーを自動的に変える方法をご紹介しました。
今回はその機能を拡張して、3種類以上のファイル形式(PDF、Word、Excel)の添付ファイルを、それぞれ異なるフォルダーに保存する方法をご紹介します。
1. 事前準備
ShrePointのドキュメント内に「添付ファイル」フォルダーを作成し、その中に「PDF」「Excel」「Word」の3つのフォルダーを作成しておきます。
このあと作成するフローは、添付ファイルの種類に応じて、自動でそれぞれのフォルダーに添付ファイルを保存するものになります。
2. コンテンツの種類とは?
今回のフローでは、メール添付ファイルの種類を識別するために、インターネット標準のフォーマットである「MIMEタイプ」を利用します。メールの添付ファイルやWebブラウザでのファイル転送時に、ファイルの種類を正しく認識するために使われます。
Power AutomateのJSON形式の出力結果を見ると、「contentType」の項目にMIMEタイプが書かれています。今回対象とするファイルのMIMEタイプは以下のとおりです。
(1)Wordファイル:application/vnd.openxmlformats-officedocument.wordprocessingml.document
(2)Excelファイル:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
(3)PDFファイル:application/pdf
3. 複数の条件で条件分岐を行う場合
今回のフローでは、複数の添付ファイルの種類に応じて、処理を変える(保存先フォルダーを変える)必要があります。
通常、何か条件に応じてその先の処理を変えたい場合には、「条件分岐」アクションを利用します。
ただし「条件分岐」アクションは、ある条件に対して「はい(当てはまる)」か「いいえ(当てはまらない)」かの2択しか設定できません。第35回 のフローのように、添付ファイルが「PDF」か「それ以外」かの2択ならばこれで良いのですが、今回のように「3択(以上)の条件」になる場合は、上図のとおり、条件分岐を何度も繰り返すことになり、大変見づらいフローになってしまいます。
このように、3択以上の条件がある場合には「スイッチ(Switch)」アクションを活用しましょう。
「スイッチ」アクションも条件分岐の一種ですが、「条件分岐」アクションとは違って「はい」か「いいえ」かで分岐するものではありません。実行結果や変数の「値」に応じて処理を分岐できるので、3択以上の条件分岐でも効率よくフローを作成できます。
4. 今回作成するワークフロー
今回、Power Automateで作成するワークフローは上図のとおりです。
前述した「スイッチ」アクションを利用して、添付ファイルが「PDF」「Excel」「Word」のどれであるかを自動的に判定し、その種類に対応するフォルダーに保存します。
なお、今回はクラシックデザイナーの画面で説明していますが、モダンデザイナーでも同じようにフローを作成できます。
4-1. トリガーの設定
フローのトリガーには、「Office 365 Outlook」コネクタの「新しいメールが届いたとき(V3)」を利用します。これにより、指定したメールアドレス(Outlook)に新しいメールが届いたときにフローが自動実行されます。
検索窓に「Outlook」と入力し、「Outlook」コネクタをクリックしたうえで、トリガー一覧から「新しいメールが届いたとき(V3)」を選択します。
トリガーの設定は、以下の項目を変更します。
・添付ファイルを含める:はい
添付ファイルの中身を取得する
・添付ファイル付きのみ:はい
添付ファイルがあるメールを受信したときだけトリガーする
もしも「添付ファイルを含める」を「いいえ」にすると、「Outlook」コネクタは、添付ファイルの基本情報(ファイル名など)だけを取得します。「はい」にすると、添付ファイルのコンテンツデータ全体を取得するようになります。
今回は、ファイルのコンテンツデータからMIMEタイプを判定するために「添付ファイルを含める」を「はい」にしますが、ファイル名だけを処理に使うのであれば「いいえ」にすることも検討してください。
なお、「新しいメールが届いたとき(V3)」トリガーには以下の制限があります。こうした特徴も理解しておくと、フローの作成時に役立つと思います。
・リアルタイムではない(数分おきに実行される)
・メールサイズは50MB未満(それ以上の場合は処理をスキップ)
・暗号化されたメールは処理できない場合がある
4-2. アクションの設定
アクションの追加を選択し、「コントロール」コネクタから「スイッチ」アクションを選択します。
「スイッチ」アクションは条件分岐を行いますが、分岐の条件(値)と、その条件に当てはまる場合のアクションを「ケース」としてまとめます。
(1)動的なコンテンツの「添付ファイル コンテンツの種類」を選択
(2)(1)を選択すると、自動的に「Apply to each」が設定されます
(3)「次の値と等しい」の欄に、PDFファイルのMIMEタイプである「application/pdf」を入力
(2)で自動的に「Apply to each」が設定されるのは、メールの添付ファイルが複数個ある場合に対応するためです。
続いて、ケースの枠内にある「アクションの追加」をクリックします。ここでは、SharePointドキュメントに用意した「PDF」フォルダにファイルを保存するアクションを作成します。
検索窓に「SharePoint」と入力して「SharePoint」コネクタをクリックしたうえで、アクション一覧から「ファイルの作成」を選択します。
「ファイルの作成」アクションは、以下の内容で設定します。
(1)サイトアドレス:「1. 事前準備」でフォルダーを作成したSharePointサイトを選択
(2)フォルダーパス:PDFを保存するフォルダーを選択
(3)ファイル名:動的なコンテンツ「添付ファイル 名前」を選択
(4)ファイル コンテンツ:動的なコンテンツ「添付ファイル コンテンツ」を選択
以上で、添付ファイルがPDFだった場合のケースが作成できました。「+」アイコンをクリックするとケースを追加できますので、Word、Excelファイルに対応する「ケース」も、同じようにして作成します。
上図のように、添付ファイルの種類がWordである場合(ケース2)、Excelである場合(ケース3)に応じて、MIMEタイプと保存先フォルダーのパスを設定します。
なお、どのケースにも該当しない場合に実行する処理は「既定」という枠で設定します。今回は特に処理を設定していないので、PDF、Word、Excel以外の添付ファイルがメールで届いた場合、フローは起動しますが何もせずに終了します。
この「既定」ケースを設定することで、想定外の場合や何らかのエラーが起きた場合でも、安全に処理を継続させたり終了させたりすることができます。また、フローの実行ログも、ケース1~3(PDF、Word、Excel)に該当した場合と同じように記録されます。
以上でフローが完成しました。最後は忘れずに、フローに名前を付けて「保存」します。筆者は今回「添付ファイル自動保存(複数の種類)」というフロー名を付けて保存しました。
5. 実行結果
フローが完成したので、さっそく試してみましょう。上図のように、「PDF」「Excel」「Word」の3つのファイルを添付したメールを送信します。
送信後、しばらくしてから保存先のフォルダーを確認してみます。
きちんとそれぞれの指定フォルダーに保存されることが確認できました。
さいごに
今回ご紹介したとおり、「スイッチ」アクションを活用すれば、3択以上の複雑な条件分岐があっても「条件分岐」アクションより簡単にフローを作成できます。条件分岐ができるのは「条件分岐」アクションだけではない、ということは覚えて起きましょう。
また、今回はそれぞれのケースについて同じアクション(SharePointドキュメントへの保存)を設定しましたが、まったく別のアクションを設定することも可能です。ここも目的に応じて工夫できるポイントだと思いますので、いろいろとアイデアをふくらませて試してみてください!

この連載の記事
-
第46回
Team Leaders
SharePointリストとExcelを活用して、効率的な「お知らせメール」送信フローを作ろう -
第45回
Team Leaders
Power Automateで使える“2種類のExcel”、その使い分けを覚えよう -
第44回
Team Leaders
契約書を確実に期限管理! SharePoint+Power Automateで期日通知を自動化 -
第43回
Team Leaders
社内からの質問に自動回答! AI Builder+ノーコードでQ&Aボットを作ろう -
第42回
Team Leaders
Power Automateで複数人の承認(多段階承認)ワークフローを簡単作成しよう -
第41回
Team Leaders
重要なTeamsメッセージの見失い/見落としを防ぐPower Autometeのフローを作ろう -
第40回
Team Leaders
クラウドフローからデスクトップフローを「Picture-in-Picture」で起動する -
第39回
Team Leaders
面倒なカレンダー登録作業を生成AIで自動化するワークフローを作ろう -
第38回
Team Leaders
生成AIに日本語プロンプトで指示を出し、メールから情報を抽出してもらおう -
第37回
Team Leaders
フォルダー内のすべてのファイルを添付してメールを自動送信するフローを作ろう - この連載の一覧へ