前回は、Gmailの新規メール作成までを自動化した。今回はメールの中に「現在の日付」を自動で入力する方法を取り上げる。これはPower Automateを使うにあたって重要となる「変数」を活用するものだ。日付は何かと使うデータなので、まずは今回の操作を試していただきたい。

新規メール作成をもっと改善したい

まずは前回のおさらいだ。前回作成したフローを実行すると、次のようにGmailで新規メールの作成が行われる。

  • Power AutomateでGmailの新規作成を行ったサンプル

    Power AutomateでGmailの新規作成を行ったサンプル

上記は業務報告のメールを自動作成したもので、日付の部分は「◯月◯日」と書いてある。このままでは使えないので、自分で日付を編集してから送信することになる。しかし、メールを自動作成した日に業務報告を送信するのであれば、この部分が作成当日の日付になっていれば編集の手間を省ける。

「本日の日付」を得る方法

日付は簡単に本文に挿入できると思われがちだが、実際はそうではない。

日付は世界中で表記が違う。Power Automateは世界中で使われるソフトウエアなので、このアプリケーションで世界中の全ての日付表記に対応させなくてはいけない。具体的には次の手順で処理を行う。

  1. 現在の日時を取得する
  2. 取得した日時を指定した形式のテキストに変換する
  3. 変換したテキストを新規メールに挿入する

フローに反映させていく

それでは先ほどの手順をフローに反映させてみよう。まず、アクションを「日時」で検索する。

  • アクションを「日時」で検索

    アクションを「日時」で検索

アクションを「日時」で検索すると次の3つのアクションが表示される。

  • 加算する日時
  • 現在の日時を取得
  • 日付の減算

今回使うのは「現在の日時を取得」だ。このアクションをドラッグ&ドロップして、フローの1と2の間に配置。すると、次のように編集ダイアログが起動する。

  • 「現在の日時を取得」ダイアログ

    「現在の日時を取得」ダイアログ

ダイアログに「生成された変数 CurrentDateTime」という表記がある。ここに注目だ。このアクションで取得された「現在の日時」には「CurrentDateTime」という名前でアクセスできる。この「CurrentDateTime」がいわゆる変数だ。

  • 「現在の日時を取得」が追加されたフロー

    「現在の日時を取得」が追加されたフロー

CurrentDateTimeという変数の値として「現在の日時」が入っているわけだが、これは文字列ではない。ここで正確に中身を知る必要はないので、漠然と日付が入っているのだと考えておけばよい(実際には日付データを保持するオブジェクトであり、CurrentDataTimeはそのオブジェクトにアクセスするための変数)。

このままでは表示できないので、表示用に「現在の日時」から「日付のテキスト」を生成する必要がある。そのためのアクションが用意されているので、それを使おう。

アクションを「datetime」で検索すると次の2つのアクションが表示される。

  • テキストをdatetimeに変換
  • datetimeをテキストに変換

ここで使うのは「datetimeをテキストに変換」だ。「datetimeをテキストに変換」をフローの2と3の間に配置する。先ほど作成した「現在の日時を取得」の後に「datetimeをテキストに変換」を配置する感じだ。

  • 「datetimeをテキストに変換」を「現在の日時を取得」アクションの下に配置する

    「datetimeをテキストに変換」を「現在の日時を取得」アクションの下に配置する

「datetimeをテキストに変換」のダイアログを編集する。まず、「変換するdatetime」に元となる日付を指定する。

「現在の日時を取得」でCurrentDateTimeという変数を取得したので、ここでその変数を指定するわけだ。UI的には変数名を入力しなくても選択できるようになっているのでその方法を使おう。「変換するdatetime」の右端に配置されている「{x}」をクリックする。

  • 「変換するdatetime」の右端に配置されている「{x}」をクリック

    「変換するdatetime」の右端に配置されている「{x}」をクリック

ここで「Browser」と「CurrentDateTime」という2つの変数が表示される。BrowserはGmailの新規メール作成のウィンドウを指しており、CurrentDateTimeは現在の日付データを指す。当然、CurrentDateTimeの方が必要なので、これを選択する。

  • 変数一覧から「CurrentDateTime」を選択する

    変数一覧から「CurrentDateTime」を選択する

選択が完了すると「変換するdatetime」に「%CurrentDateTime%」が入力される。変数はCurrentDateTimeなのだが、アクセスするときには「%CurrentDateTime%」と書くのがPower Automateの記法だ。

  • 「変換するdatetime」に「%CurrentDateTime%」が入力される

    「変換するdatetime」に「%CurrentDateTime%」が入力される

次に変換後のテキストのフォーマットを指定する。「使用する形式」を「標準」から「カスタム」に変更し、「カスタム形式」に「yyyy年MM月dd日」と入力して、次のような状態にする。

  • 使用する形式を「カスタム」に、カスタム形式を「yyyy年MM月dd日」とする

    使用する形式を「カスタム」に、カスタム形式を「yyyy年MM月dd日」とする

「yyyy年MM月dd日」というフォーマットで、例えば「2023年09月01日」のようなテキストになる。この辺りは必要に応じて変えてもらえればよい。簡単なフォーマット指定を次にまとめておく。

フォーマット 内容
yyyy 西暦
MM
dd
HH
mm
ss

日付フォーマットに関しては次のWebページに詳細がまとまっているので、詳しくはそちらを参考にしていただきたい。

先ほどのダイアログで「生成された変数 FormattedDateTime」という記述があることに注目しよう。これは、上記フォーマットを指定して変換された後のテキストは「FormattedDateTime」という変数に保持されていることを意味している。

ここまできたら日付テキストの入力を行う。まず、件名にテキストを入力しているアクションの編集ダイアログを起動する。

  • 件名にテキストを入力しているアクションを編集

    件名にテキストを入力しているアクションを編集

上記のように「◯月◯日」となっている部分を削除してから、右端の「{x}」をクリックする。

  • 「◯月◯日」を削除してから右端の「{x}」をクリック

    「◯月◯日」を削除してから右端の「{x}」をクリック

変数の候補に「FormattedDateTime」があるのでこれを選択する。

  • 変数一覧から「FormattedDateTime」を選択

    変数一覧から「FormattedDateTime」を選択

これで次のように「◯月◯日」と書いてあった部分が「%FormattedDateTime%」に入れ替わる。

  • 「◯月◯日」が「%FormattedDateTime%」に入れ替わった状態

    「◯月◯日」が「%FormattedDateTime%」に入れ替わった状態

これで保存する。今回の編集はこれで完了だ。

実行して動作を確認する

ここまで編集したらフローを保存してから実行する。次のように件名に実行した日の日付が表示されれば成功だ。

  • フローを実行して本日の日付が入力されることを確認

    フローを実行して本日の日付が入力されることを確認

日付はこのように(1)日付データの生成、(2)日付データをテキストへ変換、(3)変換したデータを挿入、という3つの工程を経なくてはいけない。少し面倒に感じる方もいるかもしれないが、ここで慣れてしまおう。

日付の処理が自動化できると便利

日付は業務において重要なことが多く、使う日付は当日のもののみではない。都合に合わせて日付も自動的に生成されてくれることが好ましいだろう。

例えば、請求書の締め日などは取引先によって異なるし、当月末、翌月15日、翌月20日、翌月末、翌々月末など書類の作成日よりも未来の日付になることが多い。こうした指定をいちいち手作業で書いていると、間違えてしまうこともある。

Power Automateのアクションでは、特定の日付を自動生成できる。知っておくと便利なので、次回はその方法を説明していく。業務を自動化していく上で、日付の操作はとても重要な部分だ。そのやり方も併せて覚えてしまおう。