見出し画像

FormsのクイズをPower Automateを使ってTeamsに投稿してみた

こんにちは。aliceです。

今日は「FormsのクイズをPower Automateを使ってTeamsに投稿してみた」です。

きっかけはこちら

momoさんのツイート。会社でクイズやったらおもしろいかな~と思って作ってみました。momoさん、ありがとうございます!


ということでチャレンジ

動くのができたので、noteにまとめてみました。


1 前提条件

やりたいのはこんな感じ

 Formsでクイズを作ってPower Automateで採点。採点した結果をExcelに入力し、Teamsに投稿する。


2 Formsでクイズを作成

 まず、クイズはテキスト形式で回答する形式にしています。また問題数は全3問としています(少なっ)

点数はすべて30点です。問題によって点数を変えると面倒なので同じ点数にしています。


まずFormsを開きます。

画像1

新しいフォームから「新しいクイズ」を選びます

画像2

クイズを作ってみる

画像3

画像29

こんなクイズができあがりました!


画像28

Formsはこれで終了です。

次はPowerAutomateでフローを作っていきます。


3 Power Automateでフローを作成

早速フローを作ります。

PowerAutomateを開きます。

画像6

自動化したクラウドフロー

画像7

フローのトリガーを「新しい応答が送信されるとき」にします。

画像8

全体のフローは感じです(長っつ)

画像9

1つずつ見ていきます。


新しい応答が送信されるとき

ここで先程作成したクイズを選択します

画像10


応答の詳細を取得する

クイズの応答の詳細を取得します。

画像11

動的なコンテンツで「新しい応答が送信されるとき」を選べばOKです。

画像12


タイムゾーンの変換

Excelに記録するための時間を取得します。

基準時間は先程と同様に動的コンテンツから「Submission time」を選択します。

画像13


ユーザーの検索(V2)

これでユーザーを検索します。「Pesopnders’ Email」を選びます。

Emailからユーザー名を検索してもらいましょう。Excelの記録用とTeamsに投稿するときに使います。

画像14


変数を初期化する(userName)

上で検索してもらったユーザー名を入れるための変数を用意します。

名前:userName

種類:文字列(名前なので)

画像15


文字列変数に追加(userName)

上の変数にユーザー名を入れます。

文字列変数に追加のところで値にユーザーの検索の項目を入れると、勝手にApply to eachが付いてきます。

名前:userName(先程作った変数)

値:姓 名 でフルネームをいれました。

画像16


変数を初期化する(correctAnswer)

正解を入れる変数を作ります。

名前:correctAnswer

種類:アレイ

値:正解 ← 初期値で正解を入れています。種類がアレイ型なので配列っぽく入れます。

画像17


変数を初期化する(yourAnswer)

回答を入れる変数を作ります。

名前:yourAnswer

種類:アレイ

値:回答 ← こちらも種類がアレイ型なので配列っぽく入れます。動的コンテンツから回答を取得します

画像18

画像19


変数を初期化する(score)

点数を入れる変数を作ります。

名前:score

種類:整数

値:0 最初は0点で正解したら30点ずつ加算

画像20


変数を初期化する(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。問題数に応じて変更が必要です。

画像21

画像23


Apply to each

ここで回答があっているかの確認をしています。

さっき作った変数「i」をループしています。

条件のところで「正解の1問目と回答の1問目があっているか」をチェック。あっていたら「はいの場合」に進み、変数scoreの値を30増やします。

いいえの場合は何もしない。

画像23

条件の計算式はこんな感じ。

こっちは回答の方。正解の方はvariables('correctAnswer')[item()]になります。

画像24


表に行を追加

採点が終わったので結果をExcelに入力します。

日付:タイムゾーンの変換で作った日付。

名前:userName

点数:score  ←採点結果

画像27

Excelはこちら

クイズ結果というテーブルに日付、名前、点数という列があります。

ここにそれぞれ追加します。

画像26


メッセージをフローボットとしてチャンネルに投稿する

いよいよ最後のアクション。Teamsに投稿に投稿。

今回はボットとして投稿しています。

先程のExcelと同じようにuserNameとscoreを使っています。

画像27


4 Teamsを確認

Teamsにこんなボットが投稿されていました。やったー!

画像28

これで完成です!

お疲れさまでした( •̀ ω •́ )✧


5 参考にしたサイト

おしまい。


この記事が気に入ったらサポートをしてみませんか?