4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Formsクイズ ランキング形式の問題をPower Automate で細かく採点する

Posted at

やりたいこと

Formsのクイズ、使ったことありますか?
自動で採点してくれたり、間違えた場合の解説も設定することができたりと、大変便利な機能です。
私は、生徒へのテストや社内教育の確認テストなど有効活用しています!
image.png

今回は質問の種類の一つ、[ランキング]形式のクイズについてのお話です。
image.png

ドラッグアンドドロップで並び替えて回答するこのクイズですが・・・
image.png

このように1ヵ所でも間違うと、0点扱いになってしまいます。悲しいですね😥
image.png

ということで、これを細かく採点してあげるフローをPower Automate で作成します!
上の例でいうと8/10点となるように、計算してあげようということです。

フローの概要

フローの全体像です。
make.powerautomate.com_environments_Default-b794cd83-44cc-447c-856e-a27e55624c65_flows_new_newFlowName=%E4%B8%A6%E3%81%B3%E6%9B%BF%E3%81%88%E3%82%AF%E3%82%A4%E3%82%BA%E3%81%AE%E6%8E%A1%E7%82%B9&trigger=%2Fproviders.png

クイズに回答すると、チャットで点数を教えてくれます。
image.png

フローの解説

変数の初期化

このフローでは変数を多用します。

名前 種類 内容
カウンタ 整数 ループ用のカウンタ変数。
得点 整数 正解数を記録するための変数。
メッセージ 文字列 通知メッセージのために、各回答の正解・不正解を記録する変数。
正解 アレイ 採点のための正解順に選択肢を並べた配列。
回答 アレイ Formsからの回答を配列として取得するためのハコ。

変数の詳細:カウンタ

のちのDo untilのループで使用します。
Power Automateでは、Array?[index] の形式で配列から値を取り出すことができますが、index は0始まりとなるため、カウンタ の初期値も0にしておきます。
image.png

変数の詳細:正解

Formsの応答からは、正解の情報を取得することができないので、フローの中でベタ打ちしています。
きちんと正解順になるように設定しておきます。
image.png

変数の詳細:回答

Formsの応答から回答を取得しますが、取得できる回答は半角カンマ(,)区切りの単純なテキストです。
image.png

そのためsplit 関数で配列に直して変数に入れておきます。
関数を入力する際は、動的な値から選択すると簡単です。
image.png
結果がこのように配列として取得できました。
image.png

注意
回答選択肢の中にカンマを含む場合は、splitで単純には分割できなくなってしまいます。
フローが複雑になってしまうので、可能な限りカンマを含まないようにForms側で注意しましょう。

ループ処理(採点)

このフローの肝の部分です。
image.png

終了条件

ループの最後にカウンタ 変数を1増やすアクションを設定しています。
image.png

カウンタ 変数がクイズの選択肢の数を上回ったときに処理を終了すればいいので、正解 変数の要素数と比較すればよいわけです。
length 関数で要素数を取得することができますが、要素数は1始まり・カウンタは0始まりと差があるため、「次の値に等しい」という条件でOKです。
image.png

配列からi番目の値を取り出す

前述のとおり、Array?[index] の形式で配列から値を取り出すことができますので、以下のようにカウンタ を使って値を取り出します。
image.png

条件分岐

先ほど取得したi番目の値を比較し、正解と回答が一致しているか?を条件にします。
image.png

正解不正解をメッセージ に記録するとともに、一致している場合は得点 を追加します。
image.png

採点結果の通知

最後に結果を通知して終了です。
HTML入力のテキストはフローの編集の際に壊れがちなので、一度作成アクションでメッセージ全文を作成しています。
image.png

最後に

このフローをgithubに公開しています。
参考になれば幸いです。

以上

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?