このテンプレートは、アイデアソンイベントでの投票・集計・結果発表を自動化するGoogle Apps Scriptです。
- Google Forms: 参加者による登壇者評価アンケート
- Google Spreadsheet: チーム情報管理・回答データ収集・集計結果出力
- Google Slides: 結果発表用プレゼンテーション自動生成
- Google Apps Script: 上記3つを連携させる自動化スクリプト
- 新しいスプレッドシートを作成
- 「Master」シートを作成し、以下の形式でデータを入力:
A列(チーム名) | B列(登壇タイトル) | C列(評価項目)
TeamA | 革新的アプリ | 技術力
TeamB | 便利ツール | アイデア力
TeamC | 新サービス | 実現可能性
| | プレゼン力
| | 独創性
- 新しいGoogle Formsを作成
- フォームの「回答」タブ → 「スプレッドシートにリンク」をクリック
- 上記で作成したスプレッドシートを選択して連携
- 自動生成されたシート名(通常「フォームの回答 1」など)を 「Result」 に変更
- 既存のプレゼンテーションを使用する場合は事前に作成
- 新規作成する場合は不要(自動で作成されます)
- Google Apps Script にアクセス
- 新しいプロジェクトを作成
src/app.gsのコードをコピー&ペースト
コード内の以下の箇所を実際のファイルIDに変更:
const FORM_ID = 'YOUR_GOOGLE_FORM_ID_HERE'; // FormsのURL内のID
const SPREADSHEET_ID = 'YOUR_SPREADSHEET_ID_HERE'; // SpreadsheetのURL内のID
const PRESENTATION_ID = 'YOUR_PRESENTATION_ID_HERE'; // SlidesのURL内のID(省略可)📌 ファイルIDの取得方法
- URL例:
https://docs.google.com/spreadsheets/d/[ここがID]/edit /d/と/editの間の文字列がファイルIDです
- 初回実行時にGoogle Drive、Forms、Sheets、Slidesへのアクセス許可を求められます
- 「許可」をクリックして認証を完了してください
事前に各関数をテスト実行して動作確認:
- updateForm() - フォームが正しく更新されるか確認
- aggregateSurveyResults() - 集計が正しく動作するか確認(テストデータで)
- createResultPresentation() - スライドが正しく生成されるか確認
- Spreadsheetの「Master」シートを開く
- 登壇チーム情報を最新に更新:
- A列: チーム名
- B列: 登壇タイトル
- C列: 評価項目(全チーム共通)
- Google Apps Script エディタを開く
updateForm()関数を実行- 実行ログで「✅ フォームの更新が完了しました」を確認
- 生成されたフォームURLを参加者に共有
- 各チームの発表後、参加者にアンケートフォームで投票してもらう
- 回答データは自動的にSpreadsheetの「Result」シートに蓄積される
- 必要に応じて
aggregateSurveyResults()を実行して中間集計を確認
- 全ての投票が完了したら
createResultPresentation()関数を実行 - 実行ログで以下を確認:
- 「✅ 集計結果を出力しました」
- 「✅ 結果発表スライドを作成しました」
- 生成されたスライドのURL
- 生成されたGoogle Slidesを開く
- プレゼンテーションモードで結果発表を実施
- チーム名
- 全体合計ポイント
- 自チーム除外合計ポイント
- 回答者数(全体)
- 回答者数(自チーム除外)
- タイトルスライド - イベント結果の概要
- 個別順位発表 - 3位→2位→1位の順(メダル付き)
- チーム詳細スライド - 各チームの獲得ポイントと登壇タイトル
- 全チーム結果一覧 - 表形式での全結果表示
- エンディングスライド - 感謝メッセージ
- 実行順序: 必ず
updateForm()→ 投票実施 →createResultPresentation()の順で実行 - データ形式: Masterシートのデータ形式を正確に守ってください
- 権限: すべてのファイルが同じGoogleアカウントで作成・アクセス可能であることを確認
- バックアップ: 重要なデータは事前にバックアップを取得することを推奨
- 評価スケール: コード内の
['1 (普通)', '2', '3 (良い)']を変更 - スライドデザイン:
createResultPresentation()関数内の色やフォントサイズを調整 - 集計ロジック: 自チーム投票の除外ルールなどを変更可能
- 「Masterシートが見つかりません」: シート名を「Master」に確認
- 「回答データがありません」: フォームの回答先設定を確認
- 「権限がありません」: ファイルIDと権限設定を再確認
- Google Apps Script エディタの実行ログでエラー詳細を確認
console.logの出力でデータの流れを追跡