BLOG

テレワークやコミュニケーションについて
考えてみました

  1. HOME
  2. ブログ
  3. ビジネス全般
  4. Power Automate for desktopを活用しよう(2)ファイル操作と自動メール送信

Power Automate for desktopを活用しよう(2)ファイル操作と自動メール送信

定型業務を自動化する際、複数のアプリを使う操作は少なくありません。そこで今回はMicrosoftの「Power Automate for desktop(以下、PAD)」を使って、作成したExcelファイルに日付のファイル名を付けて保存し、メールやTeamsなどのチャットで共有する方法を解説します。

前回作成した交通費のExcelファイルを自動で担当者に送信しよう

前回はExcelファイルに記載されている「出発地」と「到着地」を読み取り、「駅探乗換案内」のサイトで一番安い料金を調べて自動入力する方法を解説しました。単純に複数経路の料金を一気に調べるだけならこのままでも良いのですが、さらに自動で担当者に送信できればもっと便利です。

前回作成した処理に以下の処理を追加してみましょう。

  1. 実行日時を取得
  2. 料金が入力されているExcelファイルに日付の名前を付けて任意のフォルダに保存し、Excelを終了
    ファイル名には1.で取得した日付+申請者の名前を付ける
    保存先のフォルダはデスクトップ上に作成した交通費フォルダを使用
  3. 保存したファイルを次のような方法で担当者に送信
    Gmailでメールを担当者に自動送信
    Teamsのチャットに自動投稿

送信方法は、メール/チャットのどちらでも好きな方を設定してください。

交通費が入力されたファイルを日付のファイル名で保存

日付のファイル名を付けるためには、先に現在の日付を取得する必要があります。これには「現在の日時を取得」アクションを使います。取得した日付はCurrentDateTimeに格納されますが、ファイル名として利用するために「datetimeをテキストに変換」アクションを使って、「\(バックスラッシュ)」を取り除いた文字列を、FormattedDateTimeに格納します。

1.前回作成したフローを開き(コピーして利用しても構いません)、「現在の日時を取得」をワークスペースにドラッグ&ドロップしましょう。そして日付に「現在の日付のみ」、タイムゾーンに「システムタイムゾーン」を指定します。なお、今回は日付のみを取得していますが「現在の日時」を選択すれば時刻も取得できます。

前回作成したフローを開いて、「現在の日時を取得」をドラッグ&ドロップ

日付に「現在の日付のみ」、タイムゾーンに「システムタイムゾーン」を指定

2.「datetimeをテキストに変換」をワークスペースにドラッグ&ドロップし、変換するdatetimeに「%CurrentDateTime%」、使用する形式に「カスタム」、カスタム形式に「yyyy-MM-dd」と指定します。「月」は必ず大文字のMMとしてください。今回はわかりやすいよう、ハイフンを付けた形式にしていますが、なくても構いません。もし日時のファイル名にしたい場合には、カスタム形式に「yyyy-MM-dd-hhmm」などを指定しましょう。

日付のカスタム形式を設定

次に「Excelを閉じる」アクションを使って、交通費が入力されているExcelファイルに「日付_に申請者の氏名(今回はIchiroSuzukiとします)」のファイル名を指定してExcelを終了します。

3.「Excelを閉じる」をワークスペースにドラッグ&ドロップし、Excelインスタンスに「%ExcelInstance%」、Excelを閉じる前に「名前を付けてドキュメントを保存」、ドキュメント形式に「規定(拡張機能から)」、ドキュメントパスに「デスクトップ上の交通費フォルダ\%CurrentDateTime%-IchiroSuzuki.xlsx」を指定します。

Excelを閉じる前に「名前を付けてドキュメントを保存」を実行

ここまで実行すると、交通費精算申請用のExcelファイルが自動的に作成されます。

交通費精算申請用のExcelファイルを自動作成

作成したファイルをGmailで送信する

次に保存した交通費のファイルをGmailで送信する方法を解説します。

1.最初にGmailのアプリパスワードを設定します。Webブラウザから「Googleアカウントの管理」→「セキュリティ」を開き、「二段階認証」をONに設定します。(すでに設定済みの場合は、飛ばしてください)

「Googleアカウントの管理」→「セキュリティ」で「二段階認証」をONに設定する

「使ってみる」をクリック

2.二段階認証をONにすると、「Googleアカウントの管理」→「セキュリティ」からアプリパスワード」が設定できるようになります。アプリパスワードをクリックし、アプリには「メール」、デバイスには「Windowsパソコン」を選択して「生成」をクリックすると、アプリパスワードが表示されます。

「アプリパスワード」を設定する

アプリに「メール」、デバイスに「Windowsパソコン」を選択して「生成」をクリック

アプリパスワードが表示される

3.PADに戻って、「メールの送信」をワークスペースにドラッグ&ドロップします。SMTPサーバーは「smtp.gmail.com」、サーバーポートは「465」、SSLを有効にするは「ON」、SMTPサーバーには認証が必要は「ON」を指定します。ユーザー名にはGmailのメールアドレスを入力し、パスワードにはアプリパスワードを入力します。

SMTPサーバーの設定

4.続けて同じ設定画面を下にスクロールして全般から送信元に自分のGmailアドレス、送信者の表示名(今回はIchiroSuzuki)、送信先(担当者)のメールアドレスを設定し、本文の欄に、定型文となるテキストを入力しておきます。

送信元、表示名、送信先、本文を設定する

5.添付ファイルはドキュメントへのパス(Excelでファイルを保存したときと同じ文字列)を入力します。

送信する添付ファイルのドキュメントパスは「Excelを閉じる」と同じように指定

ここまでの処理を実行すると、交通費を記録したExcelファイルが添付されたメールが自動的にGmailから担当者に送信されます。もちろん、会社のメールサーバーから送信することも可能です。その場合にはSMTPサーバーの設定を管理者に確認してください。なお、PADはMicrosoftのツールなので、Outlook専用のアクションが複数用意されています。

前回の処理にアクションを4つ追加するだけで添付ファイル付きのメールを自動送信できる

作成したファイルをMicrosoft Teamsのチャンネルに投稿する

作成したファイルをMicrosoft Teamsに投稿する方法はいくつかありますが、一般的には以下のような方法で投稿します。

  • 「メールの送信」アクションから、チャネルのメールアドレス向けに投稿する
  • 「Outlook からのメール メッセージの送信」アクションから、 チャネルのメールアドレス向けに投稿する
  • 「Web サービスを呼び出します」アクションから、Webhook を利用する

せっかくGmailでファイルを自動で送信できる処理を作成したので、今回は「メールの送信」アクションを利用してみましょう。

  1. Teamsのアプリを開き、投稿したいチャンネルの右側にある「…」をクリックし、「メールアドレスを取得」をクリックすると、このチャンネルのメールアドレスが表示されるので、「コピー」しておきます。

投稿したいチャンネルのメールアドレスを取得

2.PADに戻って、「メールの送信」アクションの全般にある送信先に、先ほどコピーしたTeamsのチャンネルのメールアドレスを設定します。

メールの送信先をTeamsのチャンネルのアドレスに設定

これだけで、Microsoft Teamsのチャンネルにメールが自動で送信されるようになります。実際にフローを実行してみると、添付ファイルはリネームされてしまうものの、Microsoft Teamsのチャンネルに経費精算のメールが投稿されます。

Teamsのチャンネルに交通費精算申請のメールが自動で投稿される

応用アイデア次第で自動化できる処理はたくさんある

今回は交通費精算申請を自動化する方法を解説しました。入口である出発地や到着地の入力を楽にするためのフォーム作成や、会社の申請用紙に合わせたレイアウトの工夫など、いろいろとできることはあるかもしれません。あるいは交通費だけでなく宿泊費や食事代など出張関連の経費をまとめて処理できるよう、Excelでマクロを作成しておいてPADから実行するなどより高度な自動化を実現することも可能です。

PADはWindows 10以上のユーザーであれば無料で利用できるツールなので、いろいろ試してみることを是非おすすめします。

まとめ

・Excelに自動で日付のファイル名を付けて保存できる
・Gmailでメールを送信するにはアプリパスワードが必要
・Microsoft Teamsのチャンネルにもメール送信で自動投稿可能

関連記事