1. システムとオフィスの融合
  2. media
  3. Power Platform Power Automate
  4. Power Automate Desktopでメール送信を自動化してみた

QESブログ

Power Automate Desktopでメール送信を自動化してみた

  • LINEで送る
  • このエントリーをはてなブックマークに追加
こんにちは!システムソリューション営業本部の森です。
QESはMicrosoft Japan Partner of the Year 2022にて「PowerAppsアワード」を受賞いたしました。


前回はPower AutomateとPower Automate Desktopの違いについて調べてみました。
その違いについて知りたい方、ご興味のある方は、是非こちらをご覧ください。

それでは、本ブログで実際にPower Automate DesktopでRPAを実行してみようと思います。
そもそもRPAとは何だろう?という方もいるのではないでしょうか。
RPAは、ロボティックプロセスオートメーション(Robotic Process Automation)の略です。
これまで人間が行ってきた定型的なパソコン操作をソフトウェアロボットにより自動化してくれます。

RPAで処理したい内容は以下の通りです。
・Excelから特定のデータを抽出する
・Outlookを立ち上げる
・本日の予定タスクの内容を指導員にメールで報告を行う
・メール送信後、Excelに「出社時刻」、「ステータス」、「出社状況」を自動で書き込む

本来であれば、「本日の予定タスク」の内容メールを指導員に送信するのですが、
今回は自分宛に報告メールを送信します

まず、抽出するExcelデータの作成とPower Automate Desktopの事前準備をしていきたいと思います。

事前準備:Excel

抽出するExcelデータの作成を行います。
今回、Excelのワークシート名を「本日の予定」と「メール本文」にしてあります。

「本日の予定ワークシート」の「本日の予定タスク」の部分を前日の退勤時に記入しておきます。
ワークシート名:「本日の予定」

「自動入力」と記載されている「出社時刻」と「ステータス」、「出社状況」の部分は、
Power Automate Desktopが自動で入力するため、空欄のままにしておきます。

「メール本文ワークシート」の「本文」は、「本日の予定ワークシート」の「本日の予定タスク」が参照されます。
こちらが実際に送付されるメールの内容になります(画像を一部加工しています)

ワークシート名:「メール本文」


事前準備:Power Automate Desktop

Power Automate Desktopを使用したい場合、まずインストールが必要です。
Power Automate Desktopのダウンロード先やダウンロード手順について知りたいという方はこちら をご覧ください。
今回の場合、Power Automate Desktopのインストール後、「sample01」という空フローを作成します。
新しいフローを作成するには、「新しいフロー」を押下します。


「新しいフロー」を押下した後、「フロー名」を入力します。
今回の場合、「sample01」と入力します。そして「作成」を押下します。


「作成」を押下したら、「sample01」という空フローができました。また数秒待つと別のウィンドウが現れます。
この表示された別のウィンドウでフローのアクションを追加していきます。



左にある各アクションを右にドラッグ&ドロップして作成していきます。


アクティビティ図

今回作成するアクションの流れは以下の通りです。


デスクトップフローの作成

ここからは上記アクティビティ図に沿って実際にアクションを追加していきます。

① メッセージボックスで「出社ですか?」と表示させ、「はい(Y)」または「いいえ(N)」ボタンを押下する
「メッセージを表示」をドラッグ&ドロップして追加します。
右にドラッグ&ドロップした後、メッセージボックスの詳細設定ウィンドウが立ち上がります。
表示させたい「メッセージボックスのタイトル」と「表示するメッセージ」を入力します。
「メッセージボックスアイコン」や「メッセージボックスボタン」等は、必要に応じて設定を行います。
項目をすべて入力したら、「保存」を押下しましょう。



試しに左上の「実行」ボタンを押下してみましょう。

実行すると、「出社ですか?」というメッセージボックスが表示されました。



② 「はい(Y)」を押下した場合、現在時刻を取得する
  「いいえ(N)」を押下した場合、「フローが終了します」というメッセージを表示する

まず、①のメッセージボックスで「はい(Y)」または「いいえ(N)」のボタンを
切り替えるアクションを追加します。
その場合、「Switch」と「Case」を用います。Switchは、「チェックする値」を入力します。
今回、①で生成された「ButtonPressed」変数でチェックを行います。

Caseには、「はい(Y)」を押下した場合は「Yes」を入力し「いいえ(N)」を押下した場合は「No」を入力します。その後、「保存」を押下します。




そして、「はい(Y)」を押下した場合、現在時刻を取得します。
アクションの「現在の日時を取得します」を「Case='Yes'」の配下にドラッグ&ドロップします。
詳細設定画面が表示されます。今回の場合、東京の時刻を取得したいため、「国/地域:Asia/Tokyo」を選択します。

もし、ここで「いいえ(N)」を押下した場合には、「フローが終了します」というメッセージを表示させます。
「Case='No'」の配下に「メッセージを表示する」アクションを追加させます。

③ Excelを起動し、現在時刻をExcelファイルに書き込む。
「Excelの起動」をドラッグ&ドロップします。
詳細設定画面が現れたら、「ドキュメントパス」にExcelの場所を指定します(画像を一部加工しています)

今回の場合、該当のExcelファイルのワークシートを複数用意したため、
「アクティブなExcelワークシートの設定」アクションを追加します。
詳細設定画面で、アクティブ化させたいワークシート名を記入します。

次に書き込み設定を行います。「Excelワークシートに書き込み」をドラッグ&ドロップします。
詳細設定画面上に、「書き込む値」と「書き込みモード」、「列」、「行」を入力します。
今回の場合、「本日の予定ワークシート」のL3上に現在日時の書き込みを行います。

④ Outlookを起動する
「Outlookを起動します」をドラッグ&ドロップします。
変数を変える必要がなければ、そのまま「保存」を押下します。

①~④までのアクションをPower Automate Desktopに追加させると下記画像のようになります(画像を一部加工しています)


現在時刻が10時00分00秒以前か10時00分01秒以降か判断する
現在時刻が10時00分00秒以前か10時00分01秒以降を判断するには、「If」と「Else」を用います。
今回、10時00分00秒以前かの判定をしたいため、演算子には「以下である(<=)」を選択します。
「最初のオペランド」に「CurrentDateTime」変数を選択、「2番目のオペランド」には、「10:00」と入力します。


⑥ [現在時刻が10時00分00秒以前の場合]
ここでは現在時刻が10時00分00秒以前だった時のアクション追加の説明をします。

6-1メールの新規作成を行い、Excelに記載されているメール文①のToとCC、BCC、本文を参照する。
まず、Excelのメール本文が記載されているワークシートの設定を行います。
今回、「ワークシート名」が「メール本文」になります。

10時00分00秒以前の場合、「メール本文①」を参照させます。
参照させたい場合、「Excelワークシートから読み取り」をドラッグ&ドロップします。
今回、「To」から「本文」までが「C5」から「C9」のセルに記載されているのでそれぞれ指定を行います(画像を一部加工しています)


「Excelワークシートから読み取り」をドラッグ&ドロップして、それぞれ指定のセルを設定してみました。

6-2 メール作成し、送信する(Outlook)
アクションの「Outlookからのメールメッセージを送信」をドラッグ&ドロップします。
詳細設定画面で、メール送信の「To」から「本文」までの部分にExcelから取得したデータを当てはめます。
「アカウント」には、ご自身のMicrosoftアカウントのメールアドレスを入力してください(画像を一部加工しています)
必要に応じて「添付ファイル」も追加します。(今回の場合は「添付ファイル」を追加してあります。)

6-3 Excelファイルのステータスのセルに「○月○日○時○分○秒に送信しました」と書き込む
メール送信の際には、「メール本文」のワークシートをアクティブにしていたため変更する必要があります。
「アクティブなExcelワークシートの設定」アクションを追加します。
「ワークシート名」に「本日の予定」を入力します。

「本日の予定ワークシート」のアクティブ化設定が終わったら、「現在の日時を取得します」アクションを追加します。「国/地域」には、「Asia/Tokyo」を選択します。

「Excelワークシートに書き込み」のアクションを追加します。
今回、「本日の予定ワークシート」のM3に「(6-3で取得した)現在時刻+に正常に送信しました」の
書き込みを行いたいため、「書き込む値」に入力します。


6-4  Excelファイルの[勤務状況]のセルに「通常出社」と書き込む
「Excelワークシートに書き込み」アクションを追加します。
N3に「出社状況」の書き込みを行いたいため、「書き込む値」に「通常出社」と入力します。

⑤と⑥アクションを、Power Automate Desktopに追加すると、下記画像のようになります。


⑦ [現在時刻が10時00分01秒以降の場合]のアクションは、10時00分00秒以前の場合と同様に作成します。
詳しい説明は、ここでは割愛させていただきます。10時00分00秒以前と同様に作成したのが下記画像です。


⑧ Excelを保存して閉じる
「Excelを閉じる」のアクションを追加します。
今回の場合、Excelを閉じるの詳細設定で「Excelを閉じる前:ドキュメントを保存」を選択しておくと、
自動的に上書き保存されます。



⑨ Outlookを閉じる
「Outlookを閉じます」を選択します。詳細設定画面が現れますが、今回は、そのまま「保存」を押下します。


⑩ 「完了しました」というメッセージを表示させる
メッセージボックスの「メッセージを表示」を右にドラッグ&ドロップし、アクションを追加させます。
詳細設定画面には、「メッセージボックスのタイトル」と「表示するメッセージ」、「メッセージボックスボタン」を設定します。


⑦から⑨のアクションをPower Automate Desktopに追加すると、下記画像のようになります。


これで、アクションの追加がすべて完了しました!!

※留意点※
作成したフローが消えないように、その都度「保存」を行いましょう。
「保存」は、右上にある「保存」ボタンを押下します。
その後に表示されるダイアログが表示されたら、正常に上書き保存されます。



デスクトップフローの実行

それでは、実際に動かしてみましょう!!
まず、手動でExcelの「本日の予定タスク」欄を入力します。

入力し保存し終えたら、Power Automate Desktopのアプリケーションを起動させます。

そして、「実行」ボタンを押下します(画像を一部修正しています)

実行してみた結果、該当のExcelファイルに「出社時刻」、「ステータス」、「出社状況」が自動的に入力され、
自分宛にメールが受信されていました。
今回実行したのが10時00分01秒以降であったため、「出社状況」の欄には、「午前休または遅刻」と表示されましたが、
10時00分00秒以前であると「通常出社」と書き込まれます。


フロー終了時には、メッセージボックスで「完了しました」という表示がされ、
「OK」を押下するとフローが終了しました。


まとめ

ここまで、Power Automate DesktopでExcelデータを抽出してOutlookでのメール送信を自動化していきましたが、
いかがだったでしょうか?
Power Automate Desktopでは、ほかにもファイルの作成や圧縮機能、暗号化機能など様々な操作を自動化できます。
このような操作は、Windows 10ユーザーであれば、無料で使用できます。
Windows 10 ユーザーの皆さん、是非この日を機会にPower Automate Desktopをインストールして
使ってみてはいかがでしょうか。

弊社では、Power Automateに関するブログを記載しています。ご興味の方はぜひご覧ください。

また、弊社ではクラウドエンジニアの募集をしております。ご興味の方はこちらもご覧ください。

このブログで参照されているMicrosoft、Power Automate、Power Automate Desktop、その他マイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。
  • LINEで送る
  • このエントリーをはてなブックマークに追加

お気軽にお問い合わせください。

ページのトップへ