【GAS】Google Apps Script でGoogleフォーム・テキスト入力の回答を検証(TextValidation)を指定する

  • 2021年6月5日
  • 2021年8月20日
  • GAS
  • 5880View

はじめに

Googleフォームの機能の一つで「回答の検証」と言うものがあります。

今回は、特にテキスト入力である「記述式」と「段落」について、Google Apps Scriptで指定する方法を紹介します。

はじめに、下記コードを作成してください。

let TextValidationBuild = FormApp.createTextValidation();

このコードでは TextValidationBuild と言う変数に TextValidationBuilderクラスオブジェクト を格納しています。

エラーテキストの設定

TextValidationBuild = TextValidationBuild.setHelpText("エラーメッセージ");

こちらは、ルールを設定してそのルール以外の入力があった際に表示されるエラーテキストになります。

数値に関するルール(記述式のみ)

入力が数値であるか

TextValidationBuild = TextValidationBuild.requireNumber();

入力された値が数値であるかどうかを判断するルール。

入力が整数であるか

TextValidationBuild = TextValidationBuild.requireWholeNumber();

入力された値が整数であるかどうかを判断するルール。

入力された数値がある範囲内に存在するか

TextValidationBuild = TextValidationBuild.requireNumberBetween(start, end);

入力された数値が start 以上 end 以下に存在しているかを判断するルール。

実際に使う際は、start と end に数値を入力してください。

入力された数値がある範囲外に存在するか

TextValidationBuild = TextValidationBuild.requireNumberNotBetween(start, end);

入力された数値が start 以下 end 以上に存在しているかを判断するルール。

実際に使う際は、start と end に数値を入力してください。

入力された数値が条件と等しいか

TextValidationBuild = TextValidationBuild.requireNumberEqualTo(number);

入力された数値が number と等しいかを判断するルール。

実際に使う際は、number に数値を入力してください。

入力された数値が条件と等しくないか

TextValidationBuild = TextValidationBuild.requireNumberNotEqualTo(number);

入力された数値が number と等しくないかを判断するルール。

実際に使う際は、number に数値を入力してください。

入力された数値が条件より大きいか

TextValidationBuild = TextValidationBuild.requireNumberGreaterThan(number);

入力された数値が number より大きいかを判断するルール。

実際に使う際は、number に数値を入力してください。

入力された数値が条件以上か

TextValidationBuild = TextValidationBuild.requireNumberGreaterThanOrEqualTo(number);

入力された数値が number 以上かを判断するルール。

実際に使う際は、number に数値を入力してください。

入力された数値が条件より小さいか

TextValidationBuild = TextValidationBuild.requireNumberLessThan(number);

入力された数値が number より小さいかを判断するルール。

実際に使う際は、number に数値を入力してください。

入力された数値が条件以下か

TextValidationBuild = TextValidationBuild.requireNumberLessThanOrEqualTo(number);

入力された数値が number 以下かを判断するルール。

実際に使う際は、number に数値を入力してください。

テキストに関するルール(記述式のみ)

文字が含まれているか

TextValidationBuild = TextValidationBuild.requireTextContainsPattern(pattern);

入力された値に pattern が含まれているかを判断するルール。

文字が含まれていないか

TextValidationBuild = TextValidationBuild.requireTextDoesNotContainPattern(pattern);

入力された値に pattern が含まれていないかを判断するルール。

メールアドレスであるか

TextValidationBuild = TextValidationBuild.requireTextIsEmail();

入力された値がメールアドレスであるかどうかを判断するルール。

URLであるか

TextValidationBuild = TextValidationBuild.requireTextIsUrl();

入力された値がURLであるかどうかを判断するルール。

ただし、URLが生きているかどうかは判断できません。

長さに関するルール

文字列の長さが一定値以上か

TextValidationBuild = TextValidationBuild.requireTextLengthGreaterThanOrEqualTo(number);

入力された値の長さが number 以上かを判断するルール。

実際に使う際は、number に数値を入力してください。

文字列の長さが一定値以下か

TextValidationBuild = TextValidationBuild.requireTextLengthLessThanOrEqualTo(number);

入力された値の長さが number 以下かを判断するルール。

実際に使う際は、number に数値を入力してください。

正規表現に関するルール

正規表現が含まれているか

TextValidationBuild = TextValidationBuild.requireTextContainsPattern(pattern);

入力された値に正規表現である pattern が含まれているかを判断するルール。

正規表現が含まれていないか

TextValidationBuild = TextValidationBuild.requireTextDoesNotContainPattern(pattern);

入力された値に正規表現である pattern が含まれていないかを判断するルール。

正規表現のパターンに一致するか

TextValidationBuild = TextValidationBuild.requireTextMatchesPattern(pattern);

入力された値に正規表現である pattern に一致しているかを判断するルール。

正規表現のパターンに一致していないか

TextValidationBuild = TextValidationBuild.requireTextDoesNotMatchPattern(pattern);

入力された値に正規表現である pattern に一致していないかを判断するルール。

さいごに

作成したルールを実行できる形にBUILDします。次のコードを実行して、ルールをセットしてください。

let TextValidation = TextValidationBuild.build();
<記述式または段落のオブジェクト>.setValidation(textValidation);

今回紹介したコード以外について

Googleが用意していくれている公式リファレンスを参考にしました。とてもわかりやすいものになっています。

Google for Developers

Develop high-quality, cloud-based solutions with ease.…

全編が英語である点や、オブジェクト指向の理解が浅い状態では、うまく利用することが難しいです。

本ブログでは、今後もGoogle Apps Scriptのリファレンスの解説や、学び方・ツール作成について発信していきます。

ご興味ある方はお気に入り登録などお願いします。

最新情報をチェックしよう!