【GAS】Googleフォームでチェックボックスのバリデーション(回答の検証)を設定する方法|選択数の指定やエラーテキストの設定を実例で解説(App Script)

Google form フォーム GAS-prograshi(プロぐらし)-kv AppsScript
記事内に広告が含まれていることがあります。
[PR]

Google App Script(GAS)を使うとGoogleフォームを操作することができます。

チェックボックスの項目を追加や削除したりバリデーション(回答の検証)を設定することもできます。

ここでは、チェックボックスに対してバリデーションを設定する方法を実例で解説しています。


チェックボックスの回答の検証で設定できる項目

Googleフォームのチェックボックスのバリデーションでは「選択する最低個数」や「選択する最多個数」、「選択する個数」を指定することができます。


あわせて、「数値」「カスタムのエラーテキスト」も設定することができます。


バリデーションの設定方法|createCheckboxValidationとsetValidation

バリデーションを設定するには、createCheckboxValidationメソッドでバリデーションの設定内容を作成した後、setValidationメソッドを使って有効化します。

例えば以下のように設定します。

let checkBoxValidation = FormApp.createCheckboxValidation()
  .setHelpText("カスタムのエラーテキスト")
  .requireSelectExactly(整数)
  .build();
チェックボックスの型のアイテム.setValidation(checkBoxValidation);


createCheckboxValidationで設定できるメソッド

createCheckboxValidationでは以下のメソッドが使用できます。

メソッド内容
setHelpText(文字列)カスタムのエラーテキスト
requireSelectAtLeast(整数)選択する最低個数
requireSelectAtMost(整数)選択する最多個数
requireSelectExactly(整数)選択する個数
build()バリデーションをビルドする


(参考)AppScript > Class CheckboxValidationBuilder



実例:チェックボックスのバリデーション設定

GASでGoogleフォームのチェックボックスのオブジェクトを取得するには、チェックボックスを新規作成する場合と、既存のチェックボックスを取得する場合で異なります。


新たにチェックボックスを作成する場合|addCheckboxItem

フォームにチェックボックスを新規追加する場合はaddCheckboxItemメソッドを使います。

function createForm() {
  const formId = "フォームのID";
  const form = FormApp.openById( formId );
  
  form.setDescription( "イベント参加者の情報を下記フォームに入力してください。" );
  let item = form.addCheckboxItem();

  item.setTitle( "参加者を選択してください" );
  item.setHelpText("参加する人を全て選択してください。複数選択可能です");

  item.setRequired(true);
  item.setChoiceValues(["自分","配偶者", "子供"]);
  item.showOtherOption(true);

  let checkBoxValidation = FormApp.createCheckboxValidation()
    .setHelpText("2つ選択してください")
    .requireSelectExactly(2)
    .build();
  item.setValidation(checkBoxValidation);
}


作成したフォームに対してバリデーションを設定しています。指定した内容でバリデーションが設定されていることがわかります。



既存のチェックボックスに追加する場合|

フォームにチェックボックスを新規追加する場合はaddCheckboxItemメソッドを使います。

function createForm() {
  const formId = "フォームのID";
  const form = FormApp.openById( formId );
  
  let items = form.getItems();
  let item = items[0];

  let itemCheckBox = item.asCheckboxItem();

  let checkBoxValidation = FormApp.createCheckboxValidation()
    .setHelpText("2つ以上選択してください")
    .requireSelectAtLeast(2)
    .build();
  itemCheckBox.setValidation(checkBoxValidation);
}


作成したフォームに対してバリデーションを設定しています。指定した内容でバリデーションが設定されていることがわかります。


以上でバリデーションの設定は完了です。


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