質問を設定できたら「+新規追加」を押して次の質問を作ります。
また質問の種類を「日付」にして、今度は出勤する日を聞きます。
④休暇を取るのか取らないのか、PowerAutomateに教えてあげる
「+新規追加」を押して次の質問を作ります。
次に選ぶのは「選択肢」です。
前の質問で、PowerAutomateくんに月曜日の日付を教えてあげました。
その月曜日から金曜日の間に、休暇を取る日はあるの? もPowerAutomateくんに教えてあげます。
質問を作ったら「+新規追加」します。
休暇を取るのか聞いたら、今度は、じゃあいつ取るの? も聞かないとです。
ここで、前に作った質問「休む日ある?」に戻ります。
いつ休むのかは、休む日がない週は聞く必要がありません。
休む日が「ある」と回答したときだけ、いつ休むかを聞く。
休む日が「ない」場合はこれ以上何も聞かない。ができるようにします。
「必須」の右隣の「・・・」を押して「分岐を追加する」をやっておきます。
分岐を作ったら「戻る」を押して、質問を作る画面へ戻ります。
これで、PowerAutomateくんに私の予定を教えてあげるために必要な質問を設定できました。
作ったフォームをチェックしよう
できたフォームは「プレビュー」で実際の回答画面のレイアウトを確認できます。
しっくり来ないな…と思った箇所があったら変えておきます。
「スタイル」を選ぶと背景の色、デザインを変更できます。
フォームが完成したら、「回答の収集」を押してフォームに回答する時のURLを取得しておきます。
私はここでコピーしたURLを、会社のPCのブラウザにブックマークしています。
PowerAutomateフローの作り方
ここからはPowerAutomateの出番です。
スマホのPowerAutomateは見にくいので、パソコンで操作がオススメ。
報告フォームで埋めた内容を基に
①PowerAutomateが動き出すトリガーを決める
②予定を連絡するメッセージの文面を作る
をやってもらうフローを作ります。
Microsoftアカウントを持っていない場合は作成します。
画面の指示通りにログインを進めたら、[+作成」をクリックします。
①フローが動き出すトリガーの種類を決める
トリガーというのはPowerAutomateが仕事を始めるきっかけのことです。
特定のイベントが起きた時?
指定した時刻になったら?
つど、手動で指令を送る?
きっかけはいろいろ設定できます。
今回は特定のイベント=作っておいたフォームから予定を送った が起きた時に働いてほしいので「自動化したクラウドフロー」を選びます。
次の画面でフロー名を決めます。
フロー名は、何をやっているのか端的に表せればいいでしょう。文章でも構いません。
フロー名を入力した欄の下は検索ボックスになっています。
ここでは、何が起こったらPowerAutomateが動き出すの? の「何が」を決めます。
「Microsoft Forms」と入力して「何が起こったら」の候補を絞り込みます。
「新しい応答が送信されるとき」を選んでください。
フロー名とトリガーを選ぶ画面をスクロールすると「作成」があります。
フロー名を決め、トリガーを選んだら「作成」を押して次へ。
②Microsoft FormsからPowerAutomateに情報を渡す
いよいよフローを作り込んでいきます。
まず先頭に来ているのは、フローが動くトリガーです。
「新しいステップ」をクリックして次の動きを指定します。
なんかすげえいっぱい出てきました。
この画面では、PowerAutomateと連携しているシステムたちから
何のシステムを選んで
何をさせるのか
命令を作ります。
検索ボックスに「Microsoft Forms」と入力し「何を選んで」の部分を絞り込みます。
「Microsoft Forms」がヒットするのでそれをクリック。
「応答の詳細を取得する」を選びます。
この時点では、私が送った予定の情報はMicrosoft Formsが持っています。
この操作によって、FormsからPowerAutomateに情報が渡ります。
③PowerAutomateが時刻を勘違いしているので、誤解を解く
ここからは、Microsoft Formsからゲットした情報を加工していきます。
フォームから月曜日の日付は送っているので、それを基に火曜日、水曜日…の日付を計算していく…前にやることがあります。
PowerAutomateくんてば、プレッドがフォームから送った日付を日本時間だと思っていません。
フォームから送った日付を、日本時間に読み替えるよう言ってあげないとです。
ふたたび「新しいステップ」をクリックして
今度は「日時」で検索し、「タイムゾーンの変換」を選びます。
「基準時間」にカーソルを当てると(または、「動的なコンテンツの追加」をクリックすると、Microsoft Formsから受け取ったデータを扱えるようになります。
「月曜日の日付」を選択します。
他の箇所は以下の通り、埋めました。
基準時間 月曜日の日付
書式設定文字列 MM月dd日
変換元のタイムゾーン 協定世界日時
変換先のタイムゾーン UTC+9:00 大阪、札幌、東京

書式設定文字列」は日付を「6月12日」と書くか「6/12」と書くかという違いなので、お好みで。
協定世界日時が2種類ありますが、私が使っているのは「協定世界日時-11」の方です。
PowerAutomateがどっちを使っているか分かっていません。(私が)
時差9時間でも11時間でも日付は一緒でしょ。と思ってここはテキトーです。
何時何分までの時間も正確に計算しようと思うと、そうはいかないのですが。
<Point!>
「タイムゾーンの変換」の右に出ている・・・をクリックすると「名前の変更」を選べます。
何のタイムゾーンを変えているか分かるよう、名前を変えておくことをオススメします。
なぜならこの後の工程で、
月曜日の日付に+1して火曜日の日付を計算する
↓
火曜日の日付を日本時間に変える
↓
月曜日の日付に+nして●曜日の日付を計算する
↓
●曜日の日付を日本時間に変える
をやっていくから。
同じ操作が続くので、どこで何をやっているのか分かりやすくしておかないと、わけが分からなくなります。
⑤火曜日から金曜日の日付を計算せよ
さて、月曜日の日付を日本時間に直すことができました。
月曜日の日付に+1して火曜日の日付を出します。
やっぱり協定世界日時が出てくるので、これも日本時間に直します。
「新しいステップ」を押す→「日時」で検索→「時間への追加」を選びます。
今度の基準時間は月曜日の「変換後の時間」です。
これに+1日して火曜日の日付を出します。
「タイムゾーンの変換」をもういちど使います。
基準時間を火曜日の「算出時間」にして、協定世界時から日本時間へ変換します。
月曜日の日付に+nして日本時間に直すのを繰り返して、水曜日から金曜日の日付も出します。
+2して水曜日
+3して木曜日
+4して金曜日
もう何もかも誤解しているので、地道にひとつずつ誤解を解いていきます。
そろそろ疲れてきた
これで終わり! と言いたいところですがまだ準備段階です。
しかも、まだPowerAutomateくんが五回している部分が残っています。
出勤する日も「タイムゾーンの変換」を使って協定世界時から日本時間へ変えておきます。
⑥変数を作る
次は「変数」を使います。
Microsoft Formsから送った回答は、出社する曜日が毎回変わります。
休む曜日もあります。
Microsoft Formsから「●月×日(月)はテレワークで、次の▲日(火)は出社」と送っても、
PowerAutomateが作るメールの文面が「月曜日は出社」で固定されてしまうと困る訳です。
そもそも毎週●曜日に出勤て決めていたら、このフォームもPowerAutomateもいらねえんだよ
固定されてしまうと困る値を表現するために使うのが変数です。
PowerAutomateにはこういう文面のメールを送ってね。と教えておいて
Microsoft Formsから受け取った回答に応じて、変数1~5の中身を「出社」「テレワーク」「休暇」に書き換えられるようにしておきます。
本格的にプログラミングやるのでもなければ、ここの理解は大雑把でいいと思います。
私は「数学の方程式で出て来た代数xの文章バージョン」「状況に応じていい感じに中身を書き換えてくれる便利な子」と、割とテキトーな理解をしています。
そんな変数をPowerAutomateで使うには、例によって「新しいステップ」から
「変数」で検索し、「変数の初期化」を選びます。
ここでやるのは「月曜日」という名前の変数を作るよ! と宣言するだけです。
名前 月曜日
種類 文字列(文章を入れるので)
値 空白
と入れ、命名の儀を行います。
値が空白なのは、後の工程で「出社」「テレワーク」「休暇」を嵌めるからです。
「月曜日」という名前の変数を作ったら、同じ要領でを火曜日から金曜日までと、メールの件名と本文で使う分、合計で7つの変数を作ります。