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);
}
作成したフォームに対してバリデーションを設定しています。指定した内容でバリデーションが設定されていることがわかります。
以上でバリデーションの設定は完了です。