アプリ概要
本アプリは、研修やセミナーの出欠確認をデジタル化し、講師がスマートフォンやPCから出席状況を簡単に管理できるようにしたものです。
出席記録の登録・一覧表示・編集を行えるほか、研修マスタや受講者マスタと連携し、自動的に情報を反映させる仕組みを備えています。
各ページの概要
トップページ
アプリ起動時に表示される画面で、主な機能(出席記録/受講者マスタ/研修マスタなど)へアクセスできます。
「出席記録」ボタン→出席記録画面へ遷移
「受講者マスタ」ボタン→受講者マスタ画面へ遷移
「研修マスタ」ボタン→研修マスタ画面へ遷移

出席記録
「出席記録」では、登録された出席情報を一覧で確認できるほか、必要に応じて新規登録や編集、削除が行えます。
一覧画面では、ギャラリー形式で登録済みの出席データを表示し、特定の研修を選択して絞り込みができるようにしました。
編集画面では、出席者や研修名、会社名などを入力フォームで簡単に修正できるようにしています。
また、削除ボタンを設けることで、不要な出席記録をすぐに削除できるようにしました。

受講者マスタ
「受講者マスタ」では、氏名・会社名・役職などの受講者情報を管理します。
一覧画面から対象の受講者を選択し、編集・削除が行えるようにしています。
また、新規登録画面では会社名の候補をドロップダウンで選択できるようにし、入力ミスを防ぐ仕組みを取り入れています。
コントロール同士を連携させることで、選択内容に応じたデータが自動反映されるようにしました。

研修マスタ
「研修マスタ」では、研修名や開催日、会場などの情報を管理します。
一覧画面では登録済みの研修が一覧表示され、選択した研修を編集・削除できるようにしています。
新規登録画面では、フォーム入力を通して新しい研修を簡単に追加できます。

登録完了ページ
出席記録、受講者マスタ、研修マスタで登録、更新した際に登録完了画面に遷移。

開発に使用したコントロール・プロパティ・関数
コントロール・プロパティ・関数についてはこちら。
コントロール
| コントロール | 概要 |
| Label | テキストやデータを表示するためのコントロール。 例:研修名、開催日、出席状況など。 |
| TextInput | ユーザーが自由に文字を入力できる欄。 例:新規受講者名入力など。 |
| Dropdown | 単一選択用のリスト。 例:研修名や出席ステータス選択。 |
| Button | 処理を実行する。 例:「保存」「登録」「戻る」ボタンなど。 |
| Gallery | データを一覧表示する。 例:研修一覧、出席者一覧など。 |
| Form | データの表示・編集・登録を行うコントロール。 例:受講者マスタや研修マスタの登録画面。 |
| DatePicker | 日付を選択するコントロール。 例:開催日など。 |
| Icon | ナビゲーションやアクションを示すためのアイコン。 例:戻る、保存、追加など。 |
プロパティ
| プロパティ | 概要 |
| Items | 表示するデータの内容を指定する。 例:Filter(出席記録,研修名=Dropdown_研修.selected.研修名) |
| Default | 初期表示される値を設定。 |
| OnSelect | ボタンなどをクリックした時に実行されるアクションを設定。 |
| Text | 表示テキストを指定。 |
| Visible | 表示・非表示を制御。 |
| Fill | 背景色を設定。 |
| ItemsProperty(ギャラリー) | ギャラリー内の表示データを制御。 |
| DefaultMode(フォーム) | 新規・編集などのモード指定。 |
| DisplayMode | 入力・閲覧・無効化を制御。 例:DisplayMode.Viewで閲覧専用。 |
関数
| 関数 | 概要 |
| Patch | データソースに新規レコードを追加、または既存レコードを更新する。 |
| LookUp | 条件に一致する1件のレコードを取得。 |
| Filter | 条件に一致する複数のレコードを抽出。 |
| Navigate | 画面を切り替える。 |
| SubmitForm | 編集フォームの内容を送信。 |
| Reset | コントロールの内容をリセット。 |
| Now / Today | 現在日時や日付を取得。 例:Today() |
| If | 条件分岐を行う。 |
| Concat | 複数選択された値を文字列として連結。 |
まとめ
今回のアプリ開発では、PowerAppsを活用して「研修出席チェックアプリ」を作成しました。
このアプリでは、出席情報の登録や確認をスマートフォンやパソコンから簡単に行えるようにすることで、紙での出席管理に比べて作業効率を向上させることができました。
開発を通して、データの扱い方、画面遷移の仕組み(Navigate関数の利用)、ユーザーが使いやすい画面設計など、多くの実践的な知識を学べました。
特に、コントロール同士を上手く連携させることで、入力ミスを防ぎながら自動的にデータを反映させる仕組みを実現できた点が大きな成果です。
今後は、機能を追加しより実用的で利便性の高いアプリに発展させたいと考えています。
