PowerAutomateとExcelを使って日付指定のメール送信を行う方法です。

これも案外、ネットでちょうど良い情報が無かったので自分で書いてみます。

 

メーラーを使えば良いじゃん、といった突っ込みはあるかと思います。

他に代替手段がある方はそれで良いのですが

自社の環境だと制約があるとか、社内的な手続が面倒だとか諸々の理由で

「PAとExcelでできればなぁ」という方はいると思うんですよね。自分以外にも。

 

私自身はスキルは無いのですが、必要があったので作ってみました。

スキルが無い分、初心者にも分かり易い作りになっているかと思います。

関心がある方は御覧ください。

 

 

やりたいこと

 

さて、今回やりたいことのイメージはざっくりこんな感じです。

①指定日に、指定する相手にメールを送信する

②メールは定型文だが、相手の名前を本文にも入れたい

③メールは締切までの作業依頼をするものである

 

PAのテンプレートにも毎日送信とか、毎週送信はあります。

でも日付指定ではなかったので、日付指定ならどうしたら良いかな、と思い作りました。

 

ざっくりフローはこんな感じ。

①エクセルのテーブルで、送信日と宛先を管理する

②PAを使い毎日エクセルを確認、送信日の行の情報を取込む

③宛先にメールを送信する

 

では具体的な中身の話です。

 

 

Excelの設定

 

まずはエクセルから。

 

こんな感じの表を作り、表はテーブル形式で保存してください。

(表の上でCTRL+Tを押すとテーブルになります)

 

「送信日」「提出日」は任意の日付を入力します。

「宛先名」は受取人名、「宛先アドレス」は受取人のメールアドレスです。

その他の項目についてはもう少し解説します。
 

「送信フラグ」

送信日には「OK」、それ以外は「-」が表示されるようにします。

PAは「OK」の場合にのみ、その行のデータを読み込むようにするため、その準備となります。

数式は以下のようにしました。

=IF([@送信日]=TODAY(),"OK","-")

 

「送信日text」「提出日text」

これは「送信日」「提出日」の日付データを、テキストデータに置き換えたものです。

メール本文に「送信日」をそのまま引用すると、「11月1日」と表示させたいものが

「44866」と数字表記になってしまいます。これはPA側で日付データが文字列として認識されるため。

これを回避するための措置で、それぞれ以下の数式を入れています。

=TEXT([@送信日],"mm/dd(aaa)")

=TEXT([@提出日],"mm/dd(aaa)")

 

Excelはこれで出来上がりです。Excelの保管場所は個人ならOnedrive、

会社ならSharepointやTeamsなど、Microsoft365のクラウド上にしておきます。

 

続いてPowerAutomate側の説明です。

 

 

PowerAutomateの設定

 

まずはPowerAutomateのホームから以下の順にクリックし、

「スケジュール済クラウドフローを構築する」を開きます。

「マイフロー」

「+新しいフロー」

「スケジュール済クラウドフロー」

「繰り返し時間」は1日おきにしておきます。

名前を付けたら「作成」を押します。ここでは「日付指定メール(ExceltoOutlook)」としました。

 

これからフローを作りますが、先に全体感をお見せするとこのようになります。

 

 

Recurrence

 

順番に参りましょう。1つ目に「Recurrence」から。

毎日、日本時間の10時に送信するなら、下記の設定となります。

 

 

表内に存在する行を一覧表示

2つ目に、「表内に存在する行を一覧表示」の部分を作ります。

「Recurrence」を作成したら、すぐ下の「+新しいステップ」を押し、次のアクションを検索します。

今回は”表内に存在する”などと入力し検索すると、候補を絞り込みできるでしょう。

EXcelOnlene(Bussiness)

EXcelOnlene(OneDrive)

上記2つがヒットするかも知れません。個人の方は後者を、企業の方は基本的に前者を選択します

(企業の方でも保管場所によっては後者となります)。

ファイル」から対象のエクセルファイルを選択し、

テーブル」で対象のテーブルを選択します。

 

フィルタークエリ

今回のポイントです。今回は指定日にだけメールを送信したいのでした。

PAが読込んで送信するのは、当日分のデータだけで良いのです。

エクセル側で、送信日の行に「OK」フラグが立つようしましたので、この「OK」があるかを読みます。

CHK列が、「OK」のものだけを選択するときは以下のように入力します。

CHK eq 'OK'

 

その他、「DateTime方式」は「ISO8601」を選択します。

 

ApplyToEachとメールの送信(V2)

3つ目にメール送信の設定です。

複数のメールを送ることもあるので、ここでは繰り返し処理の「ApplyToEach」を選び

その中にメール送信に関する設定をしています。

「*以前の手順から出力を選択」では、”動的なコンテンツ”から「value」を選択します。

 

同様に、

「件名」「本文」に文字列を差し込みたい場合も、”動的なコンテンツ”から選択します。

ここでは、件名に差し込む文字列を「提出日」ではなく「提出日text」を選択しています。

Excelのところでお伝えしたように、「提出日」だと「44866」のような数字が差し込まれてしまうためです。

 

画像は省略しますが、送信元を組織アドレスにしたい場合は

「差出人(メールボックス所有者として送信する)」に組織アドレスを入力すれば可能です。

CCなども同様に設定できます。

 

フローはこれで完成です。

あとは忘れないように保存して、念のためにテストをして使ってみてください。