Googleフォームで回答上限数を設定する方法(中~上級者向け)

Googleフォーム案内画面

アンケートやお問い合わせ、セミナーやイベントの申し込みなどで便利なWebフォーム。
最近では、専門的な知識やスキルがなくても、誰でも簡単にフォームが作成できるサービスが多く存在しています。

「Googleフォーム」は簡単かつ無料でフォームを作成できる便利なサービスです。
ですが、イベントの主催者側として、こんな困ったことはありませんか?

  • Googleフォームを使ってイベントの申し込みフォームを作りたい
  • 申込人数に定員がある
  • 募集スタートしても、いつ定員数に達するか常にネットでチェックする必要がある
  • 外出中や仕事中、はたまた寝ている間に定員を超えてしまうと、手動で受付終了の作業をしなくてはならない
  • 制限人数いっぱいになった時点で、自動でフォームを締め切り、それ以降は入力できなくする機能が欲しい

最後の「あったら助かる!」な機能はGoogleフォームで設定すれば可能なのです!!
少しプログラミング要素がありますが、基本的にコピペでOKです。

実際の画面キャプチャを付けながら設定手順をご紹介したいと思います。

Googleフォームで設定する 6 Steps

  1. Googleフォームを作成する
  2. 申し込みフォームの内容を作成する
  3. フォームのスクリプトエディタにてコードを記述する
  4. デバッグする
  5. トリガーを設定する
  6. 上限人数に達した場合のお詫び文言を設定する

※Googleアカウントがある前提でご紹介します。アカウントがない方は事前に登録をお願いします。
※「デバッグ」「トリガー」などの専門用語は、各項目内で説明しています。
※この手順で設定し、問題なく機能するものの、ご利用はあくまでも自己責任でお願いします。


1. Googleフォームを作成する

Googleアカウントにログインし、Googleドライブにアクセスします。
※GoogleドライブURL→ https://www.google.com/intl/ja_ALL/drive/
左上にある「新規」をクリックします。

Googleドライブ画面

「その他」→「Googleフォーム」の順にクリックします。

Googleドライブログイン

2. 申し込みフォームの内容を作成する

Googleフォームの作成画面になったら、タイトルや説明文を入力します。

Googleフォーム作成画面

申し込みに必要な質問項目を設定していきます。
具体的な入力手順などは割愛します

Googleフォーム作成画面

3. フォームのスクリプトエディタにてコードを記述する

ひと通り申し込みフォームの作成が終わったら、
右上縦に3つ並んだ点「…(その他)」→「<>スクリプトエディタ」の順に選択します。

スクリプトエディタ

スクリプトエディタの画面が開きます。

スクリプトエディタ

スクリプトエディタに下記のスクリプトを記述します。

function endFormCheck() {
  var LIMIT_COUNT = 50; //ここに人数の上限値を設定

  var form = FormApp.getActiveForm();
  if (form.getResponses().length >= LIMIT_COUNT) {
    form.setAcceptingResponses(false);
  }
}
スクリプトエディタ編集画面

【ちょこっと解説】
「LIMIT_COUNT = 50;」の「50」と書いてあるところに回答人数の上限を設定します(半角数字)。今回は50名で設定しています。

4. デバッグする

デバッグ(debug)とは…
プログラムのミスや欠陥をチェックして、修正する作業のことです。
※参考: https://kotobank.jp/word/デバッグ-6385

「保存」をクリックすると、「Edit Project Name」という別ウィンドウが開きます。
任意でプロジェクト名を設定し、「OK」をクリックします。

スクリプトエディタ編集画面

スクリプトエディタの上メニューから
「実行」→「関数をデバッグ」→「endFormCheck」の順に選択しクリックします。

スクリプトエディタ編集画面
スクリプトエディタ編集画面

エラー表示が出なければ次へ進みます。

スクリプトエディタ編集画面

5. トリガーを設定する

トリガー(trigger)とは…
英単語の意味:引き金(を引く)、引き起こす、起動装置、作動させる
何らかの動作を開始するためのきっかけとなる命令や信号のことです。
※参考: https://kotobank.jp/word/トリガー-6794

スクリプトエディタの上メニューから
「編集」→「現在のプロジェクトのトリガー」を選びます。

トリガー設定

別ウィンドウで開いた画面右下の「+ トリガーを追加」をクリックします。

トリガー追加画面

トリガーを下記の状態に設定して「保存」します。

  • 実行する関数を選択 → endFormCheck
  • イベントのソースを選択 → フォームから
  • イベントの種類を選択 → フォーム送信時
トリガー設定画面

トリガーが設定されました。

トリガー設定完了画面

6. 上限人数に達した場合のお詫び文言を設定する

「回答時に上限に達していた場合」のお断り文言を設定します。

アンケートフォームの編集画面に戻り、「回答」タブをクリックします。
「回答を受付中」→「回答を受け付けていません」の状態にします。

アンケートフォーム設定画面

「回答者へのメッセージ」の箇所に、任意でお断り文言を編集または入力します。
その後、「 回答を受け付けていません」→「回答を受付中 」の状態に戻します。

フォーム編集画面

以上で設定は完了です。お疲れさまでした!

尚、前述しましたが、この手順で設定し、問題なく機能するものの、ご利用はあくまでも自己責任でお願いします。