Googleフォームで残席数(回答済み人数)を表示する方法

こんにちは。河野由香です。今回はGoogleフォームのスクリプトに関する記事です。

Googleフォームのスクリプトに関して、これまで下記の記事を掲載してきました。

2番目の記事「Googleフォームで回答数を制限する方法」を読んだ方から下記のようなご質問をいただきました。

『「現在何人が回答済み(あと何人か)」を提示することはできますか?』

このご質問を受けて、今回はGoogleフォームの説明文に残席数(回答済み人数)を表示するためのスクリプトを紹介します。スクリプト記述前後の手順については、「Googleフォームからメール送信する方法」をご参照ください。

1. やりたいこと

下記の図のように、Googleフォームの説明文に「残りX席です」、「X名の方が回答済みです」などと表示します。

スクリーンショット 2017-11-17 14.27.19

図:Googleフォーム説明文に残席数を提示する

2. スクリプトを書く

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

以前の記事「Googleフォームで回答数を制限する方法」で紹介したスクリプトの後半部分に追記しています。そのため、下記のスクリプトは「Googleフォームで回答数を制限する、かつ、フォームの説明文に残席数を表示する」という内容のスクリプトです。ご注意ください。

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

  var form = FormApp.getActiveForm();
  if (form.getResponses().length >= LIMIT_COUNT) {
    form.setAcceptingResponses(false);
  }
  else{
    var seat = LIMIT_COUNT -form.getResponses().length; //残席数を計算
    // 回答済み人数を表示したい場合はこちら↓のスクリプトを使います。
    // var seat = form.getResponses().length;
    var description = 'イベント申し込みフォームです。参加の可否は抽選となります。抽選結果は後日主催者よりご連絡いたします。\n'
     +'残り'+ seat + '席です。\n';
   form.setDescription(description); 
  }
}

「LIMIT_COUNT = 5」で席数の上限を決めています。

else{}内が残席数(回答済み数)を表示するためのスクリプトです。

var seatの行で「席数上限とGoogleフォームへの回答数の差」を求めています。

var descriptionの行で、Googleフォームの説明文を記述しています。ここに先ほど求めた差(seat)を加えて残席数を文章に加えています。

残席数ではなく、回答済み人数を表示したい場合は「var seat = form.getResponses().length;」のコメントアウトを外します(残席数の計算の方はコメントアウトしてください)。

3. トリガーを設定する

スクリプトが書けたら「endFormCheck」に「フォームから」「フォーム送信時」のトリガーを設定して完成です!

<参考文献>

Google Apps Script Reference:Class Form

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中