Googleフォームを回答人数で自動締め切り|GASで簡単に受付制限

前回の記事では、Googleフォームの回答受付を指定日時で自動締め切る方法をご紹介しました。
今回は、「定員になったら自動的に受付を終了したい」「先着順で申込を締め切りたい」といった内容における、回答人数(上限)で自動的にフォームを締め切る方法をご紹介します。
今回もGoogle Apps Script (GAS) を使った方法で、定員制のイベントや先着申し込みの際などに活用できます。
完成イメージ

- フォームへの回答数が設定した人数に達した時点で、自動で「回答を受け付けていません」に切り替わる。
- イベントやキャンペーンなどの定員制申込にぴったり。
GoogleフォームではGASと紐づけられるため、
- フォームへの累計回答数を取得
- それが設定した上限人数に達したかどうかをチェック
- 達していれば自動でフォームの受付を停止
という流れで、回答を締め切ることができます。
スクリプトの設定
まずは、対象のGoogleフォームからGASスクリプトを作成します。

GASでフォームの自動締め切りを設定するため、まずは対象となるGoogleフォームを開きます。
このとき、Googleフォームは「公開」状態のままにしておきます。

画面右上の「︙」(縦3つの点)→「Apps Script」をクリックします
function myFunction(){
}
が最初から入っているため、消去して以下のスクリプトを貼り付けます。
function closeFormByLimit() {
const form = FormApp.getActiveForm();
const limit = 5; // ←ここを受付上限人数に変更(例:5人まで)
const responses = form.getResponses();
if (responses.length >= limit) {
form.setAcceptingResponses(false); // 回答受付を停止
}
}
スクリプトの説明
FormApp.getActiveForm()
:このスクリプトが紐づいているGoogleフォーム本体を取得します。limit
:希望する定員人数を設定します。setAcceptingResponses(false)
:フォームの「回答受付」を停止し、「このフォームは現在回答を受け付けていません」の状態にします。
const limit = 5; // ←ここを受付上限人数に変更(例:5人まで)
スクリプト3行目の数字を変更して、希望する定員人数に設定します。

スクリプトを書いたら、名前を付けて保存します。
トリガーの設定
トリガーを設定することで回答があるたびに上記スクリプトが実行されます。
そして、定員に達した瞬間に自動で締め切ることができます。

エディタ画面の左側メニューから「時計マーク(トリガー)」をクリックします。

「トリガーを追加」または「新しいトリガーを作成します」をクリックします。

- 「実行する関数を選択」
-
closeFormByLimit
を選択します。 - 「実行するデプロイを選択」
-
Head
が表示されていれば、そのままでOKです。 - 「イベントのソースを選択」
-
フォームから
を選択します。 - 「イベントの種類を選択」
-
フォーム送信時
を選択します。

保存をクリックして、トリガー設定完了となります。
トリガー設定時も初回のみ、権限の確認ダイアログが表示されます。
画面の案内に従ってGoogleアカウントで「許可」を選択します。

指定した回答人数に達した時点でフォームの受付が停止し、「回答を受け付けていません」の状態に変わります。
まとめ
Googleフォームの回答人数で自動的に受付を締め切るには、Google Apps Script(GAS)を使うと便利です。
定員に達した時点で自動的に「受付終了」へ切り替わるため、申込やアンケートの管理がラクになります。
標準機能では実現できない柔軟な制御も、GASを使えばカスタマイズが可能です。
今回ご紹介した方法を活用して、イベント申込や先着順の受付など、さまざまなシーンで効率的にGoogleフォームを運用してみませんか?

弊社では、Google Apps Script(GAS)を活用した業務効率化サポートのほか、ITツールの導入支援やIT導入補助金の申請サポートも行っております。
ぜひお気軽にご相談ください。貴方の業務改善を全力でサポートいたします。
コメント