Power AutomateでToDo登録(Outlook, Excel)

PowerAutomateでToDo登録(Outlook, Excel)

Power AutomateでToDo登録をする

前回Power AutomateでToDoリストから通知させるフローを作成しました。前回の記事はこちら
今回は前回作成したToDoリストにタスクを追加する機能を作成したいと思います。
方法としては少しレガシーですが、outlookのメールに登録したい内容を送信することでExcelのTo0Doリストに追加するようします。


まずは下準備

今回はOutlookを使用してフローを実行させるため、Outlookの設定が必要になります。
必要になるのは「特定の受信フォルダ」「メール割り振り設定」になります。

  • 特定の受信フォルダ
  • まずはPowerAutomateでメールの受信を検知させるため、専用の受信フォルダの作成が必要になります。
    今回は「ToDo作成」という受信フォルダを作成します。 方法は「受信トレイ」で右クリック、「フォルダーの作成」を選択。

    新しいフォルダが作成されフォルダ名を入力できるようになるので、ToDo作成と指定します。

  • メールの割り振り設定
  • 先ほど作成した「ToDo作成」のフォルダにメールを割振る為に、仕分けルールの設定を行います。
    ここからはお使いのOutlookバージョンやラベル表示によって表示場所がことなるので、適宜調べてから設定を進めてください。
    まず、ホームタブを選択し、「ルール」⇒「仕分けルールと通知の管理」を選択します。

    表示されたウィンドウで、「新しいルール」を選択します。
    自動仕分けウィザードにて、「件名に特定の文字が含まれるメッセージをフォルダーに移動する」を選択。 次のように入力し、完了とします。

これで準備は完了です。件名にToDo作成を含めて、Outlookにメールを送信することで、この後設定するフローが実行されるようになります。


フローの作成

下準備が完了したので、いよいよフローの作成に入ります。
ToDoリストを追加するためのメールは下記のようなフォーマットを考えております。
・件名:ToDo作成
・本文:
 ⇒1行目:タスクのタイトル
 ⇒2行目:期限(yyyy/MM/dd)

今回のフロー実行のトリガーはOutlookで「新しいメールが届いたとき」を指定します。
  1. トリガーを指定する
  2. 指定する項目は下記になります
    ・フロー名:ToDo作成
    ・フローのトリガーを選択:新しいメールが届いたとき(V2)

  3. 受信フォルダを選択する
  4. フローを作成した際に、自動で作成される「新しいメールが届いたとき(V2)」で先ほど作成した受信フォルダを指定します。

  5. HTML形式をテキスト形式に変換する
  6. メールでは、意識的にテキスト形式に変更しない場合はHTML形式で送っていることがほとんどです。
    HTML形式では取得した本文などにタグ情報が含まれてしまうため処理が難しいです。そのため一度テキスト形式に変換し、本文を見たまま扱えるようにしたいと思います。
    ステップを追加し検索ボックスに「HTML」と入力し、アクションから「html to text(プレビュー)」を選択します。
    表示されるContentの入力欄に、先ほど取得したメールの本文を選択します。

  7. テキスト形式の本文を変数に格納
  8. この工程はなくてもよさそうですが、念のため変数にテキスト化した本文を変数に格納します。

  9. 改行用の変数を用意
  10. 取得したメールのフォーマットより改行コードで文字を区切る必要があるため、改行だけを格納している変数を用意しておきます。
    ※下図は何も入力していないように思えますが、Enterだけを押しております。

  11. 改行で分割
  12. 取得した本文を先ほど用意した「改行」の変数を利用し、配列(アレイ)に格納します。
    ※値:Split(variables('MailText'),variables('改行'))

  13. タイトルと期限を格納
  14. 分割した配列(アレイ)から、個別の変数「Subject」と「Limit」に格納します。
    ※配列(アレイ)からインデックスを指定して値を取り出す際には、「variables('StrArray')[0], variables('StrArray')[1]」と入力します。

  15. ToDoリストの一覧を取得し最新のIDを付与
  16. ToDOリストにはタスクを一意に定めるためのIDを設定しております。手動でタスク追加を行う場合には下図を数えれば良いのですが、フローで自動化しているとそういうわけにはいきません。
    また、「=row()-1」などで設定することはできますが、タスクを削除した際にそれ以降のタスクの管理IDが変わってしまうのは面倒なので、あえてフロー内で取得するようにしたいと思います。
    取得方法としては、ToDoリストの一覧を取得し繰り返し処理の中でインクリメントしていけばよいだけです。そのフローが下記になります。

  17. ToDoリストにタスクを追加
  18. タスク追加のために必要となる値は取得できたので、最後にタスク追加を行いたいと思います。
    Excelの「表に行を追加」を選択し、下記項目に用意した変数を入力します。
    ・ID:Count変数
    ・件名:Subject変数
    ・期限:Limit変数

以上でタスク追加の処理は作成完了です。


実行テスト

ということで、フローの作成が完了したので実際に動かして見ようと思います。
まずは、メールを作成します。
件名に「ToDo作成」、本文に「タスク追加テスト(改行)2021/9/29」で、PowerAutomateに連携しているOutlookアドレスに送信します。※あえて(改行)と記載しております。

こちらを送信すると、ToDoリストが更新されております。
ちゃんとタスク登録できていますね!


まとめ

今回はExcelのToDoリストにタスクを追加するフローを作成しました。
Outlookのメールによる追加なので、正直イケていない感じはあるのですが。。。(本当はTeamsなどで追加したい。。)
とはいえ、今回のフロー作成することで、PowerAutomateでのOutlookの処理を作成できるようになります。特に仕事などでメールでのやり取りが多い人にはこの処理ができるようになると効率的に仕事が進められそうです。
私はシステムのエラー通知メールを自動で処理させて、過去事象の管理などを自動化させる活用をしています!!

作成した機能自体の使い道は怪しいですが、ほかのシーンでの活用が見込めるフローだと思います。
なのでこのフローを活用して色々な処理を自動化させたいですね。
今回はこの辺で、ではまた!


Power Automateの記事

コメント

このブログの人気の投稿

PowerAppsで座席表を作成する

Power AutomateでTeamsのキーワードをトリガーにする

Power Automateで文字列抽出