みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
GASでGoogleフォームを一発で作成するツールを作成しています。
前回の記事はコチラ。

フォームにチェックボックスの質問を追加する方法についてお伝えしました。
今回は、プルダウンリストを作成していきます。
ということで、GASでGoogleフォームにプルダウンリストの質問を追加する方法、行ってみましょう!
前回のおさらい
前回までで作成したスクリプトはコチラです。
function createEventForm(){
const ss = SpreadsheetApp.getActiveSpreadsheet()
const values = ss.getSheetByName('イベント概要').getDataRange().getValues();
const formTitle = values[0][1]; //タイトル
const formDescription = values[1][1]; //概要
const form = FormApp.create(formTitle);
const id = PropertiesService.getScriptProperties().getProperty('FOLDER_ID');
const formFile = DriveApp.getFileById(form.getId());
DriveApp.getFolderById(id).addFile(formFile);
DriveApp.getRootFolder().removeFile(formFile);
form.setDescription(formDescription);
form.addTextItem().setTitle('氏名').setRequired(true);
form.addTextItem().setTitle('会社名');
const validationEmail = FormApp.createTextValidation().requireTextIsEmail().build();
form.addTextItem().setTitle('メールアドレス').setRequired(true).setValidation(validationEmail);
form.addMultipleChoiceItem()
.setTitle('お持ちのPCのOSは?')
.setChoiceValues(['Windows', 'Mac'])
.setRequired(true);
form.addCheckboxItem()
.setTitle('興味があるプログラム言語は?')
.setChoiceValues(['VBA', 'Google Apps Script', 'Python'])
.showOtherOption(true)
.setRequired(true);
}
記述式で氏名、会社名、メールアドレス、ラジオボタン形式、チェックボックス形式とだいぶ立派になってきましたね。
今回はプルダウンリストで「お住いの都道府県は?」を追加していきます。
フォームにプルダウンの質問を追加する
フォームにプルダウンの質問を追加するには、FormオブジェクトにaddListItemメソッドを使います。
もう、これまで記事をご覧になられてきた方には飽き飽きの展開ですね。
addListItemメソッドの戻り値は、ListItemオブジェクトになりますので、そのオブジェクトに質問タイトルとか、必須かどうかとか、選択肢とかを追加してばいいんでしょ?
てなわけですが、そのとおり!
プルダウンリストの質問のタイトルを設定する
プルダウンリストの質問のタイトルを設定するには、setTitleメソッドです。
プルダウンリストの質問の設定をするのであれば、その対象となるオブジェクトはListItemオブジェクトになります。
プルダウンリストの選択項目を設定する
プルダウンリストの選択項目を設定するには、setChoiceValuesメソッドを使います。
これもラジオボタンやチェックボックスと同様ですね。
文字列の配列で選択肢を設定すればOKです。
プルダウンリストの質問の回答を必須にする
プルダウンリストの質問の回答を必須にするには、setRequiredメソッドですね。
引数には、回答を必須にするかどうかをブール値、つまりtrueまたはfalseで設定します。
フォームにプルダウンリストの質問を追加をするスクリプト
以上を踏まえて、プルダウンリストの質問を追加したスクリプトがコチラです。
function createEventForm(){
function createEventForm(){
const ss = SpreadsheetApp.getActiveSpreadsheet()
const values = ss.getSheetByName('イベント概要').getDataRange().getValues();
const formTitle = values[0][1]; //タイトル
const formDescription = values[1][1]; //概要
const form = FormApp.create(formTitle);
const id = PropertiesService.getScriptProperties().getProperty('FOLDER_ID');
const formFile = DriveApp.getFileById(form.getId());
DriveApp.getFolderById(id).addFile(formFile);
DriveApp.getRootFolder().removeFile(formFile);
form.setDescription(formDescription);
form.addTextItem().setTitle('氏名').setRequired(true);
form.addTextItem().setTitle('会社名');
const validationEmail = FormApp.createTextValidation().requireTextIsEmail().build();
form.addTextItem().setTitle('メールアドレス').setRequired(true).setValidation(validationEmail);
form.addMultipleChoiceItem()
.setTitle('お持ちのPCのOSは?')
.setChoiceValues(['Windows', 'Mac'])
.setRequired(true);
form.addCheckboxItem()
.setTitle('興味があるプログラム言語は?')
.setChoiceValues(['VBA', 'Google Apps Script', 'Python'])
.showOtherOption(true)
.setRequired(true);
form.addListItem()
.setTitle('お住まいの都道府県は?')
.setChoiceValues(prefValues)
.setRequired(true);
}
都道府県の配列をprefValuesとしていますが、都道府県…47ありますよね?
それをスクリプトにベタ打ちするのは面倒です。
この配列を作る部分は次回の記事でお伝えしていきます。
まとめ
以上、GASでGoogleフォームにプルダウンリストの質問を追加する方法をお伝えしました。
記述式、ラジオボタン、チェックボックス、プルダウンリスト…だいたいノリは一緒ですね。
ここまでやればだいぶFormsサービスのパターンが見えてきますね。
さて、都道府県のリストを作る部分ですが、ここはスプレッドシートから取得して構成していければと思います。
その部分は、次回の記事でお伝えしていきますね。

どうぞお楽しみに!
連載目次:GASでGoogleフォームを一発で作成するツールを作る
イベントの申し込みやアンケートにとっても便利なGoogleフォーム。スプレッドシートの入力内容をもとに、一発でフォームを作成するツールを作っていきます。- GASでGoogleフォームを作成する最も簡単なスクリプト
- GASで作成したGoogleフォームを指定のフォルダに移動する方法
- GASでGoogleフォームに記述式の質問を追加する方法
- GASでGoogleフォームにメールアドレスの入力欄とバリデーションを追加する方法
- GASでGoogleフォームにラジオボタンの質問を追加する方法
- GASでGoogleフォームにチェックボックス形式の質問を追加する方法
- GASでGoogleフォームにプルダウンリストの質問を追加する方法
- Googleフォームの質問の選択肢をスプレッドシートのデータから生成するGAS関数の作り方
- GASでGoogleフォームに追加できる質問の種類とそのメソッドまとめ


