#趣旨
Microsoft Forms のクイズ作成機能を使ってフォームを作成します。
この機能で作成した問題には正解を設定することができます。
回答者がフォームへの入力を確定すると設問ごとの正解or不正解が判定され、合計点数が自動で算出されます。
算出された合計点数を使って、点数が基準点を超えたときに何らかのアクションを実行するフローを作成するのが今回の目的です。
例として、60点を超えたら回答者に合格通知メールを自動送信するフローを作成します。
Power Automate でフローを作成します。
フォームへの回答をフローのトリガーにします。
次に「応答の詳細を取得する」アクションを使って情報を取得します。
「応答の詳細を取得する」アクションで取得できる情報は以下の通りです。
・回答者が入力した回答内容
・回答者のメールアドレス
・回答日時
「応答の詳細を取得する」アクションで返される情報には"点数"が含まれません。
そのため、このままでは今回の目的である"点数が基準点を超えたときに何らかのアクションを実行する"が実現できません。
#解決策:フローのアクションを使って点数を算出する
##概要
Forms から直接点数を取得できないのでフロー内で点数計算を行います。
各設問の正答を変数として取得しておき、条件分岐を使って回答の正誤判定を行います。
正解したときは合計得点に加点します。
##事前準備
各設問の回答をテキスト形式で取得します。
「応答の詳細を取得する」アクションで各設問の値を変数として取得するアクションを作成します。
アクションが作成できたら、「トリガー アクションを実行する」を選択して「保存&テスト」をクリックします。
フローの実行が完了したら、結果画面から値をコピーしてメモに控えます。
##実装
得点を表す変数を作成します。
「変数を初期化する」アクションを使います。
設問の正答を表す変数を作成します。
「変数を初期化する」アクションを使います。
値に先ほどメモに控えたテキストを転記します。
ちなみに、上図の値はチェックボックス形式の回答をテキストに表したものです。
回答が複数項目にわたる場合はテキストはアレイ形式の記述になります。
正誤を判定する条件分岐を作成します。
「条件」アクションを使います。
左のボックスには回答者が入力した回答をいれます。
右のボックスには先ほど変数化した正答をいれます。
正解した際に点数に加点をする処理を作成します。
同様にすべての設問分だけアクションを追加します。
得点が基準点を超えた場合のアクションを追加します。
今回は、回答者へのメール通知アクションを使います。
##動作確認
期待通りメールが届きました。