memomoji | nanamoji

Microsoft365周辺、Power Appsの勉強、備忘録

ゲーム大会用アプリを作ったので紹介させてください

この記事は、Power Apps Advent Calendar 2023 12/20 担当分です。

qiita.com

想定していたよりもApps成分低めになってしまい申し訳ないです。

前提と要件

4年振り開催のクリスマス会で、豪華景品の当たる大クイズ大会を行うことになりました。
例年趣向を凝らしたゲーム大会を企画していますが、今年はFormsを使ってテレビのオールスター大感謝祭のようなことができないかということで、作ってみたアプリのご紹介です。

要件

  1. 各自がスマホなどで回答できる(ログイン不要)
  2. なるべく何回かチャンスがあるようにしたい
  3. 正解率と回答の速さを競いたい。正解者の中から回答の早かった順番が出ると盛り上がるのではないか
  4. 最下位賞も出したい

出題と回答送信 Formsで作成

クイズはFormsを使います。

  • すべてのユーザーが回答可能にする
  • Excelを直接データソースにしたいので、グループのフォームで作成する
  • Excelを直接データソースにしたいので、クイズではなくフォームで作成する

たいした数ではないとは言え、できれば Power Automate での処理は避けたいと思い、このようにしました。もしも現場で何かあったときに、できるだけ調べる箇所が少ない方がよいと思ったからです。
support.microsoft.com の記述を見るとExcelを開かないとデータが同期されないようにも見えますが、Apps側で読み込めば大丈夫です。

Microsoft Forms と Excel のブック - Microsoft サポート

設問や回答にイメージも使えるし、いい感じにできました! こんな感じでFormsを4つ作成します。

Forms画面

問題と解答はExcelを共有して運営メンバーに登録してもらい、出揃ったら取捨選択してFormsに登録し、Excelに番号を振ります。

問題回答テーブル
(正解欄と正解文字列欄は一つにできるかも)

答え合わせ Power Appsで作成

まず、各自にFormsにアクセスしてもらうためのQRコードを表示したスタート画面を用意。

スタート画面

各自、スマホでFormsを開いて回答。その間MCが盛り上げます。
回答を締め切ったら、答え合わせです。

答え合わせ

問題回答テーブルから、表示する行を下のギャラリーのボタンで切り替えているだけです。 右下のチェックを押すと、正解が黄色くハイライトされます。これも、正解欄の内容によってYの値を変えているだけです。 ゲームMC担当の人が上手いので、画面は地味ですがたぶんいい感じに盛り上げてくれます。(実際の画面は画像を貼って多少派手にしています)

作りながら薄々気づいていましたが、PowerPointでも十分な感じがしますよね。アニメーションなんかを使って簡単にかっこよくできるかもしれません。従来はそうやっていました。問題一覧のExcelはこんな感じでずらーっと縦横に並べていました。

以前の問題Excel
PowerPointで作業しやすいようにした工夫で、当時はそういう方法しかなかったのです(PowerPointってExcelから差し込みできないですよね?)

今回はデータから作りましょうということで、色々な職種のメンバーみんなが、上の問題回答テーブルのデータがこうなる(縦横に散らし書きしたExcelはデータソースとして使いづらい)ことを経験できたという効果もあったかなと思っています。工数で考えると、Appsをいじってる間にパワポを頑張った方が早く終わったという意見はあるかもしれないですが、それでは失敗したときの手戻りが痛いのです。

正解者発表 Power BI

正解者発表画面もAppsで頑張ってみたのですが、時間の計算が難しかったのでPower BIの方でやることにしました。 見せ方をどうするかはまだ検討中ですが、全問正解者が何名という人数を見せて期待値を上げ、順位を発表します。

正解者表示

タイムは、各ピリオドで最初に回答送信した人の回答時間を各回答者の回答時間から引いた秒数にしています(画面はテストデータなのでとんでもない秒数になっています)。
QRコードを読んでFormsを表示してから合図があるまで回答ページに進まないようにしてもらう場合はこの計算方法がよいのですが、もしも自分だけさっさと回答送信してしまう人がいるとしたら、Formsを表示したらすぐに各自で回答してもらって、タイムは完了時間から開始時間を引いたものにした方が妥当です。切り替えられるようにしておいた方がいいかもしれません。
Formsの完了時間が秒までしか記録していないので、同率がたくさん出てしまう可能性があります。その場合どうするかも決めておく必要がありそうです。

Power BI部分については、本番までもう少し検討するつもりです。

まとめ

Kahoot! でいいじゃんという意見もあると思います。
そういったサービスを利用することも考えましたが、お金のことを別にしても、手作りでやったことであれこれやりたいことを実現できた部分はあると思います(結果ほぼKahoot!になりましたが)。
また、机上ではなんとなくあーやってこーやったらできるんじゃない? と思っていても、実際手を動かしてみると思い通りに行かないことも多く、やはり作ってみるのは大事だなと改めて感じました。
また、様々な Power Platform の機能や Microsoft365 のことを知ることで、日常のやりたいことが様々な形で実現できるようになるだろうという広がりも感じました。もっと色々やりたい。

最後に、この記事の執筆にあたり、Copilot with Bing Chat が提供する機能を活用しました。Copilotは、私たちの日々の業務を効率化し、生産性を向上させるための優れたツールです。この場を借りて、CopilotおよびCopilotの開発者の方々に深く感謝申し上げます。
(この文章もBing Chatに考えてもらいました)