このページの本文へ

松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第47回

条件分岐の処理ができるのは「条件分岐」アクションだけじゃない!

「スイッチ」アクションで3種類以上の添付ファイルを自動分類/フォルダー保存する

2025年03月17日 11時00分更新

文● 松本典子 編集● 大塚/TECH.ASCII.jp

  • お気に入り
  • 本文印刷

 こんにちは、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ファイルに対応する「ケース」も、同じようにして作成します。

「ケース2」と「ケース3」を追加

 上図のように、添付ファイルの種類がWordである場合(ケース2)、Excelである場合(ケース3)に応じて、MIMEタイプと保存先フォルダーのパスを設定します。

 なお、どのケースにも該当しない場合に実行する処理は「既定」という枠で設定します。今回は特に処理を設定していないので、PDF、Word、Excel以外の添付ファイルがメールで届いた場合、フローは起動しますが何もせずに終了します。

 この「既定」ケースを設定することで、想定外の場合や何らかのエラーが起きた場合でも、安全に処理を継続させたり終了させたりすることができます。また、フローの実行ログも、ケース1~3(PDF、Word、Excel)に該当した場合と同じように記録されます。

 以上でフローが完成しました。最後は忘れずに、フローに名前を付けて「保存」します。筆者は今回「添付ファイル自動保存(複数の種類)」というフロー名を付けて保存しました。

5. 実行結果

テストメールを送信

 フローが完成したので、さっそく試してみましょう。上図のように、「PDF」「Excel」「Word」の3つのファイルを添付したメールを送信します。

 送信後、しばらくしてから保存先のフォルダーを確認してみます。

Word、Excel、PDFの各フォルダーに保存された

 きちんとそれぞれの指定フォルダーに保存されることが確認できました。

さいごに

 今回ご紹介したとおり、「スイッチ」アクションを活用すれば、3択以上の複雑な条件分岐があっても「条件分岐」アクションより簡単にフローを作成できます。条件分岐ができるのは「条件分岐」アクションだけではない、ということは覚えて起きましょう。

 また、今回はそれぞれのケースについて同じアクション(SharePointドキュメントへの保存)を設定しましたが、まったく別のアクションを設定することも可能です。ここも目的に応じて工夫できるポイントだと思いますので、いろいろとアイデアをふくらませて試してみてください!

カテゴリートップへ

この連載の記事
ピックアップ