FormsのクイズをPower Automateを使ってTeamsに投稿してみた
こんにちは。aliceです。
今日は「FormsのクイズをPower Automateを使ってTeamsに投稿してみた」です。
きっかけはこちら
momoさんのツイート。会社でクイズやったらおもしろいかな~と思って作ってみました。momoさん、ありがとうございます!
ということでチャレンジ
動くのができたので、noteにまとめてみました。
1 前提条件
やりたいのはこんな感じ
Formsでクイズを作ってPower Automateで採点。採点した結果をExcelに入力し、Teamsに投稿する。
2 Formsでクイズを作成
まず、クイズはテキスト形式で回答する形式にしています。また問題数は全3問としています(少なっ)
点数はすべて30点です。問題によって点数を変えると面倒なので同じ点数にしています。
まずFormsを開きます。
新しいフォームから「新しいクイズ」を選びます
クイズを作ってみる
こんなクイズができあがりました!
Formsはこれで終了です。
次はPowerAutomateでフローを作っていきます。
3 Power Automateでフローを作成
早速フローを作ります。
PowerAutomateを開きます。
自動化したクラウドフロー
フローのトリガーを「新しい応答が送信されるとき」にします。
全体のフローは感じです(長っつ)
1つずつ見ていきます。
新しい応答が送信されるとき
ここで先程作成したクイズを選択します
応答の詳細を取得する
クイズの応答の詳細を取得します。
動的なコンテンツで「新しい応答が送信されるとき」を選べばOKです。
タイムゾーンの変換
Excelに記録するための時間を取得します。
基準時間は先程と同様に動的コンテンツから「Submission time」を選択します。
ユーザーの検索(V2)
これでユーザーを検索します。「Pesopnders’ Email」を選びます。
Emailからユーザー名を検索してもらいましょう。Excelの記録用とTeamsに投稿するときに使います。
変数を初期化する(userName)
上で検索してもらったユーザー名を入れるための変数を用意します。
名前:userName
種類:文字列(名前なので)
文字列変数に追加(userName)
上の変数にユーザー名を入れます。
文字列変数に追加のところで値にユーザーの検索の項目を入れると、勝手にApply to eachが付いてきます。
名前:userName(先程作った変数)
値:姓 名 でフルネームをいれました。
変数を初期化する(correctAnswer)
正解を入れる変数を作ります。
名前:correctAnswer
種類:アレイ
値:正解 ← 初期値で正解を入れています。種類がアレイ型なので配列っぽく入れます。
変数を初期化する(yourAnswer)
回答を入れる変数を作ります。
名前:yourAnswer
種類:アレイ
値:回答 ← こちらも種類がアレイ型なので配列っぽく入れます。動的コンテンツから回答を取得します
変数を初期化する(score)
点数を入れる変数を作ります。
名前:score
種類:整数
値:0 最初は0点で正解したら30点ずつ加算
変数を初期化する(i)
ループ(Apply to each)用の変数を用意します。
正解の1問目と回答の1問目があっていたら30点
正解の2問目と回答の2問目があっていたら30点
正解の3問目と回答の3問目があっていたら30点
というようにチェックします。この「1,2,3」を入れる変数です。
名前:i
種類:アレイ 値でrangeを使うのでアレイを選択しています。
値:式を選択してrange(0,3)と入れます。
0はスタート、アレイは0スタートなのですね。(インデックスは0からはじまります)
0 朝ごはんはいつ食べるでしょう
1 昼ごはんはいつ食べるでしょう
2 夜ごはんはいつ食べるでしょう
後ろの3は3回繰り返してねという意味です。3問なので3。もっと良い書き方があると思うけどとりあえず3。問題数に応じて変更が必要です。
Apply to each
ここで回答があっているかの確認をしています。
さっき作った変数「i」をループしています。
条件のところで「正解の1問目と回答の1問目があっているか」をチェック。あっていたら「はいの場合」に進み、変数scoreの値を30増やします。
いいえの場合は何もしない。
条件の計算式はこんな感じ。
こっちは回答の方。正解の方はvariables('correctAnswer')[item()]になります。
表に行を追加
採点が終わったので結果をExcelに入力します。
日付:タイムゾーンの変換で作った日付。
名前:userName
点数:score ←採点結果
Excelはこちら
クイズ結果というテーブルに日付、名前、点数という列があります。
ここにそれぞれ追加します。
メッセージをフローボットとしてチャンネルに投稿する
いよいよ最後のアクション。Teamsに投稿に投稿。
今回はボットとして投稿しています。
先程のExcelと同じようにuserNameとscoreを使っています。
4 Teamsを確認
Teamsにこんなボットが投稿されていました。やったー!
これで完成です!
お疲れさまでした( •̀ ω •́ )✧
5 参考にしたサイト
おしまい。
この記事が気に入ったらサポートをしてみませんか?