はじめに
社内発表会でよくある「タイマー管理」、「質疑応答指名」用のアプリを作りました。
Teams会議チャットへ終了通知や指名抽選結果通知が届くようにしました。
ソリューションは GitHub で公開しています。
機能概要
1. カウントダウンタイマー
発表者の持ち時間を計測します。
- 分数を入力(1〜60分)して Start/Stop
- リセットボタンで再設定
- タイマー終了時にオーバーレイで「終了です」を全画面表示
- Teams 連携が有効な場合、終了と同時に会議チャットへ通知
2. 指名抽選
発表後の質問・コメント担当者をランダムに選出します。
上長から抽出(デフォルト)
- コンボボックスで上長を検索・複数選択
- Office 365 Users の「部下一覧取得」API でメンバーを自動収集
会議参加者から抽出(トグル切替)
- Teams 連携設定で有効性確認済みの URL が必要
- 会議の参加者一覧(UPN)から氏名を解決して収集
氏名解決に Office 365 Users API を使用するため、テナント外のゲストユーザーはリストに含まれません。
共通操作
- メンバーリストから個別に除外可能
- 「指名抽選」ボタンでシャッフルして 1 名を選出(選出後はリストから削除)
- Teams 連携が有効な場合、抽選結果を会議チャットへ通知
3. Teams 連携設定
- Teams 会議の招待 URL を入力
- 「有効性確認」ボタンで Microsoft Graph API に問い合わせ
- OK の場合、会議名・スレッド ID・参加者一覧を取得
- 通知のオン/オフをトグルで選択
Teams 通知は Adaptive Card で送信され、カード内の「発表会ツールを開く」ボタンからアプリに直接遷移できます。
システム構成
Power Apps キャンバスアプリ
├── Power Automate フロー①:Teams 有効性確認
│ └── Microsoft Graph API でミーティング情報を取得
└── Power Automate フロー②:Teams 通知
└── Flow bot で Adaptive Card を会議チャットに投稿
└── 投稿失敗時:Flow bot DM にフォールバック
使用コネクタ
| コネクタ | 用途 |
|---|---|
| Microsoft Teams | Graph HTTP リクエスト、チャット/チャネルへのカード投稿 |
| Office 365 Users | ユーザー検索、部下一覧取得、プロファイル取得 |
セットアップ手順
前提条件
- Power Apps / Power Automate ライセンス(Standard コネクタが使用可能なプラン)
- Microsoft Teams・Office 365 ライセンス
- Power Apps 環境への編集権限
インポート手順
- Power Apps にサインイン
- 左メニュー ソリューション → インポート
- リリースページから
PresentationSupportTool_x_x_x_x.zipをダウンロードして選択 - インポート画面でコネクタの接続を設定
- Microsoft Teams:既存の接続を選択または新規作成
- Office 365 Users:既存の接続を選択または新規作成
- 環境変数
PresentationSupportToolURLの入力を求められたら、既定値のままスキップ- アプリ URL はインポート完了後に確定するため、後から設定します
- インポートを実行
インポート後の設定(任意)
Teams 通知カードの「発表会ツールを開く」ボタンのリンク先を設定します。
- Power Apps でアプリを開き、アドレスバーから URL をコピー
-
ソリューション → 発表会ツール → 環境変数 →
PresentationSupportToolURL - 現在の値 に URL を入力して保存
おわりに
司会者が別途タイマーや参加者リストを見なくてもチャットを確認してれば進行できる点が良いなと思ってます。
他にも盛り込んだら良さそうなアイデアあれば教えてもらえると嬉しいです。

