【Power Automate】エクセルのリストを読み取りメールを個別に送信する

ネコニウム研究所

PCを利用したモノづくりに関連する情報を掲載するブログ

【Power Automate】エクセルのリストを読み取りメールを個別に送信する

2021-12-6 |

M 365 の Power Automate を使って、複数の宛先に個別にメールを送信したい!

Power Automate シリーズ(?)第 2 段です。

仕様書

  • xlsx ファイルに保管されてるメールアドレス宛にそれぞれ行毎にメールを送信する。
  • xlsx ファイルは、OneDrive または、SharePoint に保管する。
  • 送信日時を xlsx ファイルに出力し、送信日時が空白以外の場合はメールを送信しない。

手順書

メールアドレスなどを読み取る xlsx ファイルの準備

  1. OneDrive なり SharePoint なりにメールアドレスなどを読み取るための xlsx ファイルを作る。
  2. テーブルを作成する。今回は下記のような感じにした。
    テーブルの作成は、範囲を選択 -> タブ「挿入」->「テーブル」->「先頭業をテーブルの見出しとして使用する」にチェック -> 「OK」より行える。
ID MailAddress Name SendAt
重複のないユニークな文字列 送信先メールアドレス 送信先の名前 メールの送信日時

Power Automate にてフロー作成

  1. Power Automate にアクセスして「マイフロー」 -> 「新しいフロー」 -> 「インスタント クラウド フロー」の順にクリックする。
  2. 「フロー名」は任意の名前、「フローのトリガーを選択してください」には「手動でフローをトリガーします」を設定する。
  3. 「フローの編集」へ推移するので、新しいステップ「タイム ゾーンの変換」を追加する。
    「基準時間」は動的コンテンツから「タイムスタンプ」、「変換元のタイムゾーン」は「(UTC)協定世界時」、「変換先のタイムゾーン」は「(UTC+9:00)大阪、札幌、東京」、「書式設定文字列」はカスタム文字列として「yyyy-MM-dd HH:mm:ss」と入力する。
  4. 新しいステップ「変数を初期化する」を追加する。
    名前は「日時」、種類は「文字列」、値は動的なコンテンツにある「変換後の時間」とする。名前は任意で良い。
  5. 新しいステップ「表内に存在する行を一覧表示」を追加する。
    場所、ドキュメントライブラリ、ファイル、テーブルで xlsx ファイルとテーブルを指定する。
  6. 新しいステップ「Apply to each」を追加する。
    「以前の手順から出力を選択」は動的なコンテンツから「value」を選択する。
  7. 「Apply to each」の中の「アクションの追加」から「条件」を追加する。
    「SendAt」「次の値に等しい」「」(空白)と入力する。
  8. 「はいの場合」の中の「アクションの追加」から「メールの送信(V2)」を追加する。
    「宛先」は動的なコンテンツから「MailAddress」、「件名」は任意、「本文」には動的なコンテンツから「Name」をテストのために含めておく。
  9. 同じく「はいの場合」の中の「アクションの追加」から「行の更新」を追加する。
    場所、ドキュメントライブラリ、ファイル、テーブルで xlsx ファイルとテーブルを指定する。「キー列」は「ID」、「キー値」は動的なコンテンツの「ID」を選択する。その下に列が列挙されてるので「SendAt」に動的なコンテンツの「日時」を設定する
  10. 画面の右上の「保存」をクリックしてフローを保存する。

テスト

  1. 画面の右上の「テスト」->「手動」->「テスト」をクリックしたら、xlsx ファイルに入力しているメールアドレス宛にメールが送信されてるか。また、xlsx ファイルに送信日時が出力されてるか確認する。

まとめ

めちゃくちゃ個人的なことなんだけど、前回のと合わせて Google Workspace でやってたことはだいたい移行完了できた。
WEB 系はちょっと無理かも。Power Apps 使えばある程度できるかもだけども。