以前、Googleフォームを使って簡単にアンケートを取得する方法をご紹介しましたが、Googleフォームはアンケートを取得する以外にもセミナーなどの参加申し込みを受け付けるフォームとしても重宝します。
セミナーなどの申し込みの場合、最大収容人数があらかじめ決まっていることがほとんどですが、何の工夫もせずにGoogleフォームを作成すると、申し込み人数を見張っていなければなりません。
今回はあらかじめ募集人数が決まっている場合など、最大人数に達した際に申し込みを自動的に締め切る方法をご紹介します。
処理の概要
処理はアンケートフォームの送信時にGASプログラムを実行することで実装します。
GASプログラム内には以下の処理を組み込みます。
- 残席数が0になったらフォームの受付状態を【受付終了】に変更する
- フォームのヘッダー部に残席数を表示する
あらかじめ申し込みフォーム自体は実装されていることが前提です。
申し込みフォームの作り方はアンケートフォームの作成を参照してください。
アンケートフォームの送信時に実行する点がポイントです。
スクリプト説明
function endFormCheck() { var LIMIT_COUNT = 20; //最大収容人数を定義 var form = FormApp.getActiveForm(); //フォームの回答行が最大収容人数以上だったら、回答受付を停止する if (form.getResponses().length >= LIMIT_COUNT) { form.setAcceptingResponses(false); } //最大収容人数未満だったら、フォームの説明文に残席数を表示する else{ //残席数は最大収容人数-現在の回答数 var seat = LIMIT_COUNT -form.getResponses().length; //フォームの説明文に【残り〇席です】と表示する var description = '〇〇セミナーの申込受付は残り'+ seat + '席です。\n'; form.setDescription(description); } }
はじめに最大収容人数を定義します。
フォームのlengthプロパティで回答数を取得し、最大収容人数以上だったらフォームの回答受付を停止します。
手動であれば以下の操作ですね。
▼
まだ残席数がある場合は、フォームの説明文に「残り〇席です」と表示します。
注意点
このスクリプトはフォームの送信時に実行されますので、まだ申し込みがない時点では残席数は表示しません。
ですから、最初にフォームを作成する際に、手動で説明文に「○○セミナーの申込受付は残り〇席(最大収容人数)です」と記述しておく必要があります。
また、最初に説明文に諸々記載していてもフォーム送信時に「○○セミナーの申込受付は残り〇席です」に上書きされてしまいます。
このため、説明文に残り席以外の情報を記載したい場合はスクリプト内のdescription変数にその他の情報も付加しておく必要があります。
var description = ‘○○でも○○できるセミナーのご案内【〇月〇日〇時より】\n’+
‘〇〇セミナーの申込受付は残り’+ seat + ‘席です。\n’;