みなさん、Google Form使ってますか?
手軽にアンケートが取れて、スプレッドシートで集計もできて、とても便利ですよね。
でも、「GUIでフォームをぽちぽち作るの、地味に面倒…」という人も多いのではないでしょうか?
実は、GAS(Google Apps Script)でフォームを一発作成できると聞き、さっそく試してみました。
これ、やばいです。超便利!
生成AIに作らせる
今回はGoogleのサービスなので、Geminiに依頼してみました。
gasを使って、適当なグーグルフォームを作って。
と指示を出すと、フォーム作成コードと詳細な作り方を教えてくれました。
作成手順
・新規スプレッドシートを開く
・右上の「拡張機能」タブ → Apps Scriptを選択

・スクリプトエディタに以下のコードを貼り付ける
// この関数を実行するとGoogleフォームが作成されます
function createEventForm() {
// フォームを作成
const form = FormApp.create('イベント参加登録フォーム');
form.setTitle('イベント参加登録フォーム');
form.setDescription('以下の項目にご記入の上、ご登録ください。');
form.setCollectEmail(true); // メールアドレスを自動収集
Logger.log('フォームを作成しました: %s', form.getTitle());
// 質問1: お名前
const nameItem = form.addTextItem();
nameItem.setTitle('お名前').setRequired(true);
// 質問2: 参加希望日
const dateItem = form.addListItem();
dateItem.setTitle('参加希望日')
.setChoiceValues(['11月10日(金)', '11月11日(土)', '11月12日(日)']);
// 質問3: ご興味のあるセッション
const sessionItem = form.addCheckboxItem();
sessionItem.setTitle('ご興味のあるセッションを選択してください(複数選択可)')
.setChoices([
sessionItem.createChoice('基調講演A'),
sessionItem.createChoice('技術セッションB'),
sessionItem.createChoice('ハンズオンC'),
sessionItem.createChoice('ネットワーキング')
]);
// 質問4: その他ご要望
const otherItem = form.addParagraphTextItem();
otherItem.setTitle('その他、ご意見・ご要望があればご記入ください');
// ログ出力
Logger.log('公開URL: ' + form.getPublishedUrl());
Logger.log('編集用URL: ' + form.getEditUrl());
Browser.msgBox('フォームを作成しました! ログでURLを確認してください。');
}
・保存して「実行」ボタンを押す
初回は認証を求められます。アカウントを選んで許可を押します。

処理中ぐるぐるが終わらなくて心配になりますが、スプレッドシート側に戻ると作成完了ダイアログが表示されます。(GASでたまによくあるやつ)

これで完成!あとはGUIで編集しても良し、コードでカスタマイズしても良し!
よく使うコード例
新規フォームを作成する
const form = FormApp.create('新しいアンケート');
form.setTitle('イベント出欠確認');
form.setDescription('ご回答をよろしくお願いいたします。');
既存フォームを編集する
const formId = '既存フォームのURL';
const form = FormApp.openById(formId);
質問項目の例
A. テキスト入力(1行)
form.addTextItem().setTitle('お名前');
B. 段落テキスト(複数行)
form.addParagraphTextItem().setTitle('ご意見・ご感想をお聞かせください');
C. ラジオボタン(単一選択)
form.addMultipleChoiceItem()
.setTitle('参加希望のコースを選択してください')
.setChoiceValues(['Aコース', 'Bコース', 'Cコース']);
D. チェックボックス(複数選択可)
form.addCheckboxItem()
.setTitle('興味のある分野をすべて選んでください')
.setChoiceValues(['テクノロジー', 'アート', 'スポーツ', '料理']);
E. プルダウンリスト
form.addListItem()
.setTitle('あなたの年代を選択してください')
.setChoiceValues(['10代', '20代', '30代', '40代', '50代以上']);
F. 均等目盛
form.addScaleItem()
.setTitle('イベントの満足度を5段階で評価してください')
.setBounds(1, 5)
.setLabels('不満', '満足');
質問の共通オプション
const nameItem = form.addTextItem().setTitle('会社名');
nameItem.setRequired(true);
nameItem.setHelpText('(例)株式会社〇〇');
回答によって分岐させる
const pageForYes = form.addPageBreakItem().setTitle('参加者向け情報');
const pageForNo = form.addPageBreakItem().setTitle('ご協力ありがとうございました');
const participationItem = form.addMultipleChoiceItem()
.setTitle('イベントに参加しますか?');
const choiceYes = participationItem.createChoice('はい', pageForYes);
const choiceNo = participationItem.createChoice('いいえ', pageForNo);
participationItem.setChoices([choiceYes, choiceNo]);
送信後メッセージの変更
form.setConfirmationMessage('ご回答ありがとうございました。当日お会いできるのを楽しみにしています!');
自然言語でサクッと作らせたいので、プロンプトのテンプレも作ってみました。
GeminiでもGPT-4oでも、良い感じにコードを出してくれました。
コピーする編集する
あなたはGoogle Apps Scriptのエキスパートです。
以下の仕様に基づいて、Googleフォームを新規で作成するためのGASコードを生成してください。
# フォームの基本情報
- フォームのタイトル: サンプルアンケート
- フォームの説明文: これはサンプルアンケートです。ご協力ありがとうございます。
# 質問項目リスト
1. お名前(短い記述式・必須)
2. メールアドレス(短い記述式・必須・メール形式)
3. ご年齢(短い記述式・必須・0以上の数値)
4. 性別(ラジオボタン・[男性, 女性, その他]・必須)
5. 好きな食べ物(チェックボックス・[寿司, ラーメン, カレー, 焼肉]・必須)
6. ご意見・ご感想(段落・任意)
# コードに関する追加指示
- 全ての処理を1つの関数(例: `createMyForm`)にまとめてください。
- コードには簡単なコメントを入れてください。
- 実行後、フォームの「編集用URL」と「公開用URL」をログに表示してください。
おわりに
煩わしいフォーム作成が一発で出来る。 かなり使えるネタではないでしょうか。 よく使うようなフォームはテンプレートを固めて保存しておいてもいいかもです。
今回この素敵なTipsは、最近立ち上げられた佐賀県を中心にGASを学びたい人のコミュニティ
「ALL IN GAS」の中で教えていただきました。
興味のある方は、以下のフォームからぜひご参加ください!
あ、HAGAKURE PROGRAMMING塾もよろしくお願いいたします。