PowerAppsで理解度テストと採点をできるか試してみた

アイキャッチ
七草あんこ

社内で研修を行ったあと、その理解度測定としてよくテストを行います。

弊社では以前Wordやエクセルで作ったものを紙に印刷して配布していました。

これは回収後の採点や集計がめんどくさいんですよね。

今回はアプリで代替できるか試してみようと思います。

いきなり結論

Formsでやった方がはるかに楽だよ。

00│まず動画をご覧ください

コレクションに格納した正答とユーザーが入力した解答が一致しているかで正否を判定します。

好きな問題からチャレンジできますが、解答後は訂正できません。

正解すれば画面上部の点数が増えていきます。

今回は下記4点のやり方を紹介します。

  1. 正答と一致しているか判定する。
  2. 解答前は正否を表示しない。
  3. 正否によりアイコンや色を変える。
  4. 進行に合わせて点数を累積する。

以降、コピペできるコードはサンプルコレクションの使用を想定しています。うまく動作しない場合は調整してください。サンプルコレクションを使う場合は、下記記事にある_TestCollectionを適当なButtonコントロールにコピペし、実行してください。

01│正答と一致しているか判定する。

  1. 正答はコレクションのAnserに格納しています。TextInputコントロールに解答を入力し、確定のButtonコントロールを押すと、コレクションのUAnserに格納されます。
  2. 解答がUAnserに格納されると、ギャラリーのLabelコントロールにその内容が表示されます。また、正否を表現するIconコントロールVisivleTrueになりアイコンが表示されます。
  3. 表示されるアイコンの形や色は、AnserUAnserが一致しているか否かで判定します。

.DisplayMode 選択しているレコードのUAnserが空なら押下可能

If(IsBlank(Gallery1.Selected.UAnser),DisplayMode.Edit,Disabled)

.OnSelect 選択しているレコードのUAnserに解答を格納、解答欄をリセット

Patch(_Test,LookUp(_Test,Seq=Gallery1.Selected.Seq),{UAnser:TextInput1.Text});
Reset(TextInput1)

.Visivle UAnserが空なら表示しない

!IsBlank(ThisItem.UAnser)

.Icon AnserとUAnserが一致していれば✔、そうでなければ×

If(ThisItem.Anser=ThisItem.UAnser,Icon.CheckBadge,Icon.CancelBadge)

.Color AnserとUAnserが一致していれば緑系、そうでなければ赤系

If(ThisItem.Anser=ThisItem.UAnser,RGBA(54, 176, 75, 1),RGBA(250, 155, 112, 1))

02│解答前は正否を表示しない。

  1. 解答していなければIconコントロールを表示させません。
    Visivleのコードは!IsBlank(ThisItem.UAnser)です。
    UAnserが空ならTrueとなり表示されます。なので頭にをつけてそれを否定します。Notの簡略表記ですね。

03│正否によりアイコンや色を変える。

  1. レコードごとにIf文AnserUAnserが一致しているか判定し、その結果でアイコンの種類や色を指定します。
  2. おなじ考え方で、UAnserの格納状態でButtonコントロールDisplayModeを制御しています。

04│進行に合わせて点数を累積する。

  1. 獲得点数について動画ではSVGを使って表現していますが、Labelコントロールでも代用できます。コレクションをAnser=UAnserでFilterし、そのPointを合計しています。
  2. 最後に+0をしている理由は、未解答または正答0の時でも合計値を表示させるためです。
Sum(Filter(_Test,Anser=UAnser),Point)+0

05│まとめ

勢いで実験してみましたがいかがでしたか?今回のネタはTwitterで見つけた悩みごとです。自分ならどうやって解決するかなと考え、最後までやってみちゃいました。思いのほか、小技を紹介できたので満足しています。

解答や採点結果を保存したい場合は、最後にリストへ書き込むようにしてください。レスポンスが低下しますが、リストへの書き込みタイミングは解答の都度でも問題ありません。

それでは、今日はこの辺で・・・

ご支援よろしくおねがいします

この記事を気に入ってくださった方、寄付してあげてもいいよという方がいらっしゃっいましたら、ご支援いただけると助かります。

下記リンクからAmazonギフト券で、金額は15円からお気持ちを入力してください。

受取人のメールアドレスは amazon@anko7793.com までお願いします。

メッセージもいただけるとたいへん喜びます。

よろしくお願いします。

Amazonギフト券(Eメールタイプ) 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT US
七草あんこ
非IT系中間管理職やってます。社命によりoffice365を主軸とした業務改善プロジェクトメンバーに任命されたことでPowerAppsと出会えました。いまではビジネス・プライベートを問わず、欠かせないツールになっています。導入初期やアプリ作成時に遭遇した諸問題の解決法とサンプルアプリの作り方を紹介していきます。主にTwitterで情報収集しているので不明点など呟いているとお邪魔するかもしれません。