Googleフォームで回答を収集する際に、特定の日時や回答数に達した場合に自動的に回答を締め切る方法です。
回答を受付中>回答を受け付けていません
標準機能で「回答を受付中」の部分をOFFにすると、回答を締め切ることができます。
回答者へのメッセージを修正できます。
回答を締め切りました!便利ですね。
しかし、この回答を締め切る機能は手動でOFFにする必要があります。
こちらを、指定の回答数に達したら、自動的に回答締め切りになるように、GASで調整してみます。
Googleフォームの回答数が3件に達した場合、回答を締め切る
Googleフォームの回答数が3件に達した場合、回答を締め切るようにスクリプトを作成していきます。
このコードは、Googleフォームの回答数が指定した上限数に達した場合に、回答を締め切るためのものです。
function closeAnswer() {
const form = FormApp.getActiveForm();
const formResponses = form.getResponses();
const LIMIT_COUNT = 3;
if (formResponses.length >= LIMIT_COUNT) {
form.setAcceptingResponses(false);
} else {
form.setAcceptingResponses(true);
}
}
closeAnswer関数は、回答受付を継続するかどうかを判断し、回答数が上限数に達した場合には回答を締め切ります。
アクティブなGoogleフォームを取得
このコードは、Google Apps Scriptを使用して、アクティブなGoogleフォームを取得し、そのフォームに対する回答を取得するものです。
const form = FormApp.getActiveForm();
const formResponses = form.getResponses();
まず、FormApp.getActiveForm()
を使用して、アクティブなGoogleフォームを取得しています。これにより、スクリプトが実行されたGoogleフォームに対するFormオブジェクトが返されます。
次に、form.getResponses()
を使用して、フォームに対する配列を取得しています。これにより、FormResponseオブジェクトの配列が返されます。
これらのコードを使用することで、Googleフォームに対する回答を処理することができます。
LIMIT_COUNT
このコードは、Googleフォームに対して回答を締め切るための上限数を定義しているものです。
const LIMIT_COUNT = 3;
const を使用して、定数を定義しています。定数名はLIMIT_COUNTで、この定数の値を変更することで、Googleフォームに対する回答を締め切る上限数を変更することができます。
このコードを使用する場合、適切な上限数を設定することが重要です。
Googleフォームに対して回答を締め切る
このコードは、Googleフォームに対して回答を締め切るための条件分岐を行っています。
if (formResponses.length >= LIMIT_COUNT) {
form.setAcceptingResponses(false);
} else {
form.setAcceptingResponses(true);
}
if文を使用して、回答数が上限数以上の場合は、form.setAcceptingResponses(false)を実行して回答を締め切ります。それ以外の場合は、form.setAcceptingResponses(true)を実行して回答を受け付けます。
このように条件分岐を使用することで、上限数に達した場合に回答を締め切ることができます。
elseの方は、回答を削除した場合にフォームの回答をON(再開)にしたいので入れています。
トリガーを設定する
関数を実行すると、回答が3以上ある場合は「回答を受け付けていません」に切り替わります。
切り替わりました!
ただし、このままだと、手動で実行することになりますので、トリガーを設定します。
[rml_read_more]
これで、送信をした際に、上限を超えた場合。
次にフォームを開いたときには上限エラーとなります。
まとめ
これらのコードを使用することで、Googleフォームに対する回答を処理することができます。
ご参考ください。