みなさん、こんにちは!
タカハシ(@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); }
スプレッドシートのデータを元に、イベント申し込み用のフォームを作成するスクリプトです。
質問は今のところ
- 氏名
- 会社名
- メールアドレス
…これだけですので、もうちょっと増やしたいですね。
今回は、ラジオボタン形式の「お持ちのPCのOSは?」という質問を追加していきたいと思います。
フォームにラジオボタンの質問を追加する
フォームにラジオボタンを追加するには、FormオブジェクトにaddMultipleChoiceItemメソッドを使います。
これでOK。
ただ、これだけでは質問のタイトルも、選択項目もないスカスカのラジオボタンになってしまいますので、それらを設定する必要があります。
ラジオボタンの質問のタイトルを設定する
addMultipleChoiceItemメソッドの戻り値は、MultipleChoiceItemオブジェクトというオブジェクトになります。
そのオブジェクトに対して、色々なメソッドを実行することで、質問の詳細を設定していくことができます。
まず、質問のタイトルを設定するには、setTitleメソッドを使います。
これは、記述式の質問を追加する場合と同じノリですね。
ラジオボタンの選択項目を設定する
ラジオボタンの場合は、選択項目も設定してあげる必要がありますね。
その場合は、MultipleChoiceItemオブジェクトに対して、setChoiceValuesメソッドを使います。
選択肢を、文字列の配列で指定することで、ラジオボタンの選択項目をまとめて設定することができます。
ラジオボタンの質問の回答を必須にする
ラジオボタンの質問について必須にするかどうかは、MultipleChoiceItemオブジェクトに対してsetRequiredメソッドを使います。
必須かどうかはブール値つまりtrueかfalseで設定です。
ラジオボタンの質問を追加するスクリプト
以上を踏まえまして、フォームにラジオボタンで「お持ちのPCのOSは?」という質問を追加するようにスクリプトを修正しました。
こちらです。
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); }
選択肢は、WindowsとMacの二択です。
これを実行すると、以下のようなラジオボタン形式の質問を追加することができます。
まとめ
以上、GASでGoogleフォームにラジオボタン形式の質問を追加する方法についてお伝えしました。
ちょっとオブジェクト名が「MultipleChoiceItem」などと難しい感じがしますが、オブジェクト名が長いだけで、なんてことはありません。
さて、次回はこれに似た質問となりますが、チェックボックスを追加する方法です。
どうぞお楽しみに!
連載目次:GASでGoogleフォームを一発で作成するツールを作る
イベントの申し込みやアンケートにとっても便利なGoogleフォーム。スプレッドシートの入力内容をもとに、一発でフォームを作成するツールを作っていきます。- GASでGoogleフォームを作成する最も簡単なスクリプト
- GASで作成したGoogleフォームを指定のフォルダに移動する方法
- GASでGoogleフォームに記述式の質問を追加する方法
- GASでGoogleフォームにメールアドレスの入力欄とバリデーションを追加する方法
- GASでGoogleフォームにラジオボタンの質問を追加する方法
- GASでGoogleフォームにチェックボックス形式の質問を追加する方法
- GASでGoogleフォームにプルダウンリストの質問を追加する方法
- Googleフォームの質問の選択肢をスプレッドシートのデータから生成するGAS関数の作り方
- GASでGoogleフォームに追加できる質問の種類とそのメソッドまとめ