GASでGoogleフォームにラジオボタンの質問を追加する方法


radio-button

photo credit: Michel Curi 1959 6-Tube Pushbutton AM Radio via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

GASでGoogleフォームによるイベント申し込みフォームを作成する方法についてお伝えしています。

前回の記事はコチラ。

GASでGoogleフォームにメールアドレスの入力欄とバリデーションを追加する方法
GASでGoogleフォームを作成するツールの作り方について解説をしています。今回は、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メソッドを使います。

Formオブジェクト.addMultipleChoiceItem()

これでOK。

ただ、これだけでは質問のタイトルも、選択項目もないスカスカのラジオボタンになってしまいますので、それらを設定する必要があります。

ラジオボタンの質問のタイトルを設定する

addMultipleChoiceItemメソッドの戻り値は、MultipleChoiceItemオブジェクトというオブジェクトになります。

そのオブジェクトに対して、色々なメソッドを実行することで、質問の詳細を設定していくことができます。

まず、質問のタイトルを設定するには、setTitleメソッドを使います。

MultipleChoiceItemオブジェクト.setTitle(質問のタイトル)

これは、記述式の質問を追加する場合と同じノリですね。

ラジオボタンの選択項目を設定する

ラジオボタンの場合は、選択項目も設定してあげる必要がありますね。

その場合は、MultipleChoiceItemオブジェクトに対して、setChoiceValuesメソッドを使います。

MultipleChoiceItemオブジェクト.setChoiceValues(選択肢の配列)

選択肢を、文字列の配列で指定することで、ラジオボタンの選択項目をまとめて設定することができます。

ラジオボタンの質問の回答を必須にする

ラジオボタンの質問について必須にするかどうかは、MultipleChoiceItemオブジェクトに対してsetRequiredメソッドを使います。

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フォームでラジオボタン形式の質問を追加

まとめ

以上、GASでGoogleフォームにラジオボタン形式の質問を追加する方法についてお伝えしました。

ちょっとオブジェクト名が「MultipleChoiceItem」などと難しい感じがしますが、オブジェクト名が長いだけで、なんてことはありません。

さて、次回はこれに似た質問となりますが、チェックボックスを追加する方法です。

GASでGoogleフォームにチェックボックス形式の質問を追加する方法
GASでGoogleフォームを作成するツールを作成しています。今回は、CheckboxItemオブジェクト、つまりチェックボックス形式の質問を追加する方法をお伝えします。「その他」の項目も表示できますよ。

どうぞお楽しみに!

連載目次:GASでGoogleフォームを一発で作成するツールを作る

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

タイトルとURLをコピーしました