Googleフォームを管理していると、Googleフォームに人数制限を設定する方法が分からない。または、質問の選択肢に人数制限を設定する方法が分からないと頭を悩ませている方も多いのではないでしょうか?
Googleフォームではスクリプトエディタにスクリプトを記載すれば、フォームまたは選択肢に人数制限を設定できます。人数制限を設定すれば、日程調整やイベントの予約フォームとしてGoogleフォームを運用できるのです。
そこで、本記事ではGoogleフォームで人数制限を設定する際の概要を踏まえた上で、Googleフォームのスクリプトエディタにスクリプトを記載する手順をご紹介します。
もし、Googleフォームの機能では不十分と感じている場合、フォーム作成ツール「formrun」がおすすめです。formrunを使用すると下記の5つのメリットがあります。
- フォームの受付上限を1クリックで設定可能
- プログラミング不要で簡単設定
- ワンクリックでrecaptcha設定可能
- マウス操作でデザイン設定可能
- お問い合わせ管理、メール対応も可能
- 自動メールやChatworkなどツール通知機能も有り
以上の機能が完備されており、基本料金は無料です。
▼ビジネス利用において、formrunユーザーの7割がGoogleフォームから変更しています。formrunとGoogleフォームの違いを下記の記事で詳細をご覧ください。
目次 [非表示]
<h2>Googleフォームで作成した予約システムに人数制限(定員)を設定する方法2選</h2>
Googleフォームで作成した予約システムに人数制限を設定するには、Googleフォームのスクリプトエディタにスクリプトを記載する必要があります。人数制限を設定していなければ、手動でGoogleフォームの受付終了を操作しなければなりません。
Googleフォームで作成した予約システムに設定できる人数制限の方法は、下記の2つです。
- 回答数が人数制限に達した時点でフォームごとクローズする
- 人数制限に達した選択肢のみを消す
人数制限に達した選択肢のみを消す場合は、定員に達した項目がフォームの選択肢から削除されてしまう点に注意です。
そのため、スクリプトエディタにスクリプトを記載することに加えて、Googleスプレッドシートと連携する必要があります。Googleスプレッドシートと連携しておけば、回答はスプレッドシート内に記録されます。
<h2>回答数が人数制限に達した時点でフォームごとクローズする手順</h2>
まず、回答数が人数制限に達した時点でフォームごとクローズする手順をご紹介します。具体的には下記の手順に沿って設定します。
- サンプルフォームを作成する
- フォームのスクリプトエディタを開きコードを記載する
- プロジェクトを保存して実行する
- 回答数が人数制限に達した際にフォームをクローズするようトリガーを設定する
- 回答数が人数制限に達した際の表記を設定する
<h3>手順① サンプルフォームを作成する</h3>
最初に人数制限を設定するサンプルフォームを作成します。いきなり、人数制限を設定したいフォームに設定を行うと、エラーやトラブルが発生する可能性があるためです。まずは、サンプルフォームでテストしてから、実際に設定したいフォームに人数制限を設定しましょう。
サンプルフォームを作成する手順は下記の通りです。
- Googleアカウントを作成
- テンプレートを作成
- パーツを追加
- 設問/選択肢の作成
- デザインの設定
- 詳細設定
- 公開設定
▼下記の記事において詳しいGoogleフォームの作り方をご紹介しています。
【【2024年完全版】Googleフォームの使い方を徹底解説|作り方から作成例まで詳しく紹介】
<h3>手順② フォームのスクリプトエディタを開きコードを記載する</h3>
サンプルフォームを作成できたら、フォームのスクリプトエディタを開き、コードを記載します。具体的な手順は下記の通りです。
- フォームの右上「︙」をクリック
- 「スクリプトエディタ」をクリック
- すでに書き込まれているコードを削除
- 以下のコードをコピペしてペースト
—————-コピペする部分—————-
function endFormCheck() {
var LIMIT_COUNT = 1; //ここに上限値を設定
var form = FormApp.getActiveForm();
if (form.getResponses().length >= LIMIT_COUNT) {
form.setAcceptingResponses(false);
}
}
————コピペする部分ここまで————
スクリプトの上限値を設定する部分には、設定した人数制限の数値を記入しましょう。2人が回答した時点でGoogleフォームをクローズしたい場合は「2」と記載します。
<h3>手順③ プロジェクトを保存して実行する</h3>
続いて、プロジェクトを保存して実行します。具体的な手順は下記の通りです。
- 画面上部の「プロジェクトを保存」をクリック
- 「プロジェクト名」を設定
- 「実行」をクリック
- 「権限を確認」をクリック
- 実行ログにエラーがでないことを確認
<h3>手順④ 回答数が人数制限に達した際にフォームをクローズするようトリガーを設定する</h3>
続いて、回答数が人数制限に達した際にスクリプトが実行されるようにトリガーを設定します。トリガーが設定されると人数制限に達した時点でフォームがクローズされます。具体的な手順は下記の通りです。
- 左メニューから「トリガー」を開く
- 「トリガーを追加」をクリック
- 「実行する関数を選択」を下記のように設定
- 実行する関数を選択:endFormCheck
- 実行するデプロイを選択:Head
- イベントのソースを選択:フォームから
- イベントの種類を選択:フォーム送信時
- エラー通知設定:毎日通知を受け取る
<h3>手順⑤ 回答数が人数制限に達した際の表記を設定する</h3>
続いて、回答数が人数制限に達した際の表記を設定します。例えば、「人数制限に達したため回答を締め切りました」のような文言です。具体的な手順は下記の通りです。
- Googleフォームの編集画面で「回答タブ」をクリック
- 「回答を受付中」を「回答を受け付けていません」に変更
- 回答者へのメッセージに文章を入力
- 「回答を受け付けていません」から「回答を受付中」に変更
以上ですべての設定が完了です。あとは、回答数が人数制限に達した時点でフォームごとクローズするか動作確認を行いましょう。適切に設定できていれば、実際に人数制限を設定したフォームに同様の設定を行います。
<h2>回答数が人数制限に達した選択肢のみを消す手順</h2>
次は回答数が人数制限に達した選択肢のみを消す手順をご紹介します。具体的な手順は下記の通りです。
- サンプルフォームを作成する
- フォームからGoogleスプレッドシートを開き編集する
- フォームのスクリプトエディタを開きコードを記載する
- 選択肢が人数制限に達した際に選択肢を締め切るようトリガーを設定する
<h3>手順① サンプルフォームを作成する</h3>
まず、サンプルフォームを作成します。サンプルフォームを作成する理由と手順は先ほど、回答数が人数制限に達した時点でフォームごとクローズする手順でご紹介した通りです。
- Googleアカウントを作成
- テンプレートを作成
- パーツを追加
- 設問/選択肢の作成
- デザインの設定
- 詳細設定
- 公開設定
▼下記の記事において詳しいGoogleフォームの作り方をご紹介しています。
【【2024年完全版】Googleフォームの使い方を徹底解説|作り方から作成例まで詳しく紹介】
<h3>手順② フォームからGoogleスプレッドシートを開き編集する</h3>
サンプルフォームが作成できたら、GoogleフォームとGoogleスプレッドシートを連携します。具体的な手順は下記の通りです。
- フォームの回答ページ右上の「スプレッドシートの作成」をクリック
- スプレッドシートのシート名を分かりやすいものに変更
- 2つ目のシートを作成し、シートの名前を分かりやすいものに変更
- スプレッドシート内に候補日と定員を設定
候補日と定員を設定する際の具体例は下記の通りです。
候補日 | 定員(0のときは人数制限無し) |
5/5 | 30 |
5/6 | 0 |
5/7 | 30 |
5/8 | 30 |
5/9 | 30 |
<h3>手順③ フォームのスクリプトエディタを開きコードを記載する</h3>
続いて、Googleフォームのスクリプトエディタを開き、コードを記載します。具体的な手順は下記の通りです。
- フォームの右上「︙」をクリック
- 「スクリプトエディタ」をクリック
- すでに書き込まれているコードを削除
- 以下のコードをコピペしてペースト
- コードの基本設定を編集
- 画面上部の「updateFormを選択」し、「実行ボタン」をクリック
- スプレッドシートに正しく反映されているか確認
////
// 【基本設定】
// ここを編集するだけで使用できます
////
//「https://docs.google.com/spreadsheets/d/xxx/edit」のxxxを入れてください
var spreadSheetID = ‘xxx’;
// 候補日と定員を書くシート名
var sheetName = ‘候補’;
// 回答のシート名
var answerSheetName = ‘フォームの回答’;
// 定員のある項目の名前
var questionName = ‘参加したい日程をどうぞ!(各日程定員50名です)’;
////
// 【フォームを更新する関数】
////
function updateForm() {
////
// 【スプレッドシートの情報を取得】
// 候補と定員を取得し、定員に満たない候補のみを取得します
////
// スプレッドシートをIDで取得
var sheets = SpreadsheetApp.openById(spreadSheetID);
// 候補と回答のシートを取得
var sheet = sheets.getSheetByName(sheetName);
var answerSheet = sheets.getSheetByName(answerSheetName);
// 候補のシートのA行の2行目から下の値を配列で取得する
var sheetLastRow = sheet.getLastRow();
if (sheetLastRow > 1) {
// 候補と定員を取得
var candidate = sheet.getRange(2, 1, sheetLastRow – 1, 2).getValues();
} else {
return;
}
// 回答のシートの2行目から下の値を配列で取得する
var answerSheetLastRow = answerSheet.getLastRow();
if (answerSheetLastRow > 1) {
var questionNames = answerSheet.getRange(1, 1, 1, answerSheet.getLastColumn()).getValues();
var colCount = questionNames[0].indexOf(questionName);
if (colCount === -1) {
Logger.log(“定員のある項目が見つかりません。questionName の値を確認してください”);
}
// 必要な部分だけ取得 (2次元配列で返ってくるので、flat()で1次元配列に変換しておく)
var answerData = answerSheet.getRange(2, colCount + 1, answerSheetLastRow – 1).getValues().flat();
}
////
// 【Googleフォームの選択肢の上書き】
////
// フォームの取得
var form = FormApp.getActiveForm();
// 質問項目をすべて取得
var items = form.getItems();
// 選択肢の作成、更新
items.forEach(function(item) {
// 質問項目がquestionNameの項目を探す
if(item.getTitle() === questionName) {
var listItemQuestion = item.asListItem();
// 選択肢を入れる配列
var choices = [];
// 候補日を一つ一つ見ていく
// nameAndCapacity[0]が候補日、nameAndCapacity[1]がその定員
candidate.forEach(function(nameAndCapacity) {
if(nameAndCapacity[0] != “”) {
// 定員無制限かどうか。また、回答が一件もない場合もこっち
if (!answerData || nameAndCapacity[1] === 0 || nameAndCapacity[1] === “”) {
choices.push(listItemQuestion.createChoice(nameAndCapacity[0]));
} else {
// 定員がある場合は定員以上になっていないか確認
var counter = 0;
// 何人分キャパが埋まっているかカウント
for(var i = 0; i < answerData.length; i++) {
if (nameAndCapacity[0] === answerData[i]) {
counter++;
}
}
// まだキャパがあれば選択肢に追加
if (counter < nameAndCapacity[1]) {
choices.push(listItemQuestion.createChoice(nameAndCapacity[0]));
}
}
}
});
if (choices.length > 0) {
// フォームの回答を受け付ける
form.setAcceptingResponses(true);
// 選択肢を上書き
listItemQuestion.setChoices(choices);
} else {
// 満員につき、回答受付終了
form.setAcceptingResponses(false);
}
return;
}
});
}
コードを編集する際は、シート名と項目名に誤りがないように記載してください。
<h3>手順④ 選択肢が人数制限に達した際に選択肢を締め切るようトリガーを設定する</h3>
続いて、選択肢が人数制限に達した際に選択肢を締め切るようにトリガーを設定します。具体的な手順は下記の通りです。
- スクリプトエディタ上部の「編集」をクリック
- 「現在のプロジェクトのトリガー」をクリック
- 「実行する関数を選択」を下記のように設定
- 実行する関数を選択:endFormCheck
- 実行するデプロイを選択:Head
- イベントのソースを選択:フォームから
- イベントの種類を選択:フォーム送信時
- エラー通知設定:毎日通知を受け取る
以上で設定完了です。あとは、選択肢が人数制限に達した際に選択肢が締め切られるか動作確認を行います。動作に問題がなければ、人数制限を設定したいフォームに同様の手順で人数制限を設定しましょう。
<h2>Googleフォームの回答数を確認(表示)する方法</h2>
Googleフォームの回答数を確認する方法が分からない場合、下記の手順で確認できます。
- Googleフォームを開く
- Googleフォーム上部にある「回答」をクリック
- 回答を確認
▼詳しい確認手順と回答から確認できる項目は下記の記事で解説しています。
【Googleフォームの回答を確認する方法とは?通知メールの設定手順も解説】
<h2>Googleフォームをさらに活用する方法</h2>
Googleフォームでは人数制限以外にもさまざまな設定ができます。用途にあわせて設定を行えば、Googleフォームをさらに活用できるでしょう。具体的には下記のような設定が可能です。
- Googleフォームに回答があった際にメールを自動返信できる
- GASを使用すれば人数制限とチェックボックス(ラジオボタン)による項目の複数選択が設定できる
- GoogleフォームはQRコードで共有できる
<h3>Googleフォームに回答があった際にメールを自動返信できる</h3>
Googleフォームに回答があった際、回答したユーザーにメールを自動返信できます。デフォルトの設定では、回答があった際に自動返信メールは届かないため注意しましょう。具体的な手順は下記の通りです。
- Googleフォームで「設定タブ」をクリック
- 「回答」の設定を開く
- 「メールアドレスを収集する」をオン
- 「回答のコピーを回答者に送信」を「常に表示」へ変更
以上で設定完了です。設定が完了すれば、Googleフォームに回答があった際にメールが自動送信されます。
<h3>GASを使用すれば人数制限の設定とチェックボックス(ラジオボタン)による項目の複数選択が設定できる</h3>
GAS(Google Apps Script)を使用すれば、人数制限の設定とチェックボックスによる項目の複数選択ができます。この設定を行えば、回答者は複数の選択肢を選択可能です。また、複数の選択肢を選択した場合にも定員に達した選択肢が選択肢から削除されます。
こちらの設定はGASとスプレッドシートの関数を組み合わせて実施できます。専門的な設定となるため、設定を実施する場合は下記の記事を参照してください。
【【GAS】Googleフォームの選択肢に定員を設定~チェックボックスでも対応】
<h3>GoogleフォームはQRコードで共有できる</h3>
Googleフォームは「クルクルマネージャー」というツールを使えば、QRコードでユーザーに共有できます。GoogleフォームへのリンクをQRコードにすれば、ユーザーが簡単にフォームにアクセスできるようになり、回答を集めやすくなるでしょう。また紙媒体での共有も可能となります。
具体的な手順は下記の通りです。
- GoogleフォームのURLをコピー
- 「クルクルマネージャー」でQRコードを作成
以上の操作を行えば、GoogleフォームをQRコードに変更できます。
また、ビジネス用フォーム作成ツール「formrun」の利用もおすすめです。「formrun」はフォームのQRコードを自動生成でき、フォーム作成から問い合わせ管理まで一括で作成可能なツールです。ほとんどの機能が無料で体験できますので、気軽にさわってみてください。
▼GoogleフォームでQRコードを作成する方法は下記の記事で詳細に解説しています。
【GoogleフォームでQRコードを作成する方法を解説!おすすめの作成可能なツール3選も紹介】
<h2>フォーム作成ツール「formrun」もおすすめ!</h2>
formrunにはGoogleフォームのデメリットをカバーできる以下の特徴があります。formrunを利用するメリットは下記の4点です。
- テンプレートが豊富
- EFO(フォーム最適化)に役立つ
- 問い合わせ管理までできる
- セキュリティが高い
<h3>テンプレートが120種類以上ある</h3>
formrunはGoogleフォームに比べ、テンプレートが豊富なのが特徴です。120種類以上のテンプレートが揃っているため、幅広い業種や用途に合わせたフォームに対応できます。
<h3>EFO(フォーム最適化)に役立つ</h3>
EFO(フォーム最適化)に役立てられることもformrunに移行するメリットの1つです。ユーザーに親切なフォームを作成するために必要なEFO機能が、formrunには搭載されています。
例えば以下のような機能です。
- リアルバリデーション機能
- 住所補完機能
- フリガナ自動入力機能
- 全角入力の自動半角化
ユーザーが入力をストレスに感じないようなフォームを作成できるため、ユーザーの離脱を防止が可能です。
<h3>顧客管理まで活用できる</h3>
formrunを活用すれば、顧客管理まで対応できます。formrunが活用できるのは、フォーム作成のみではありません。
問い合わせフォームを活用するなら、抜け漏れがないように対応しなければなりませんが、問い合わせから顧客管理まで一括して可能なツールです。
また、formrunは対応状況をステータス別に管理できるのもメリットです。未対応・対応中・対応済み・商品発送済みなど、ステータスは自社が管理しやすいように設定できます。
<h3>セキュリティ対策が万全</h3>
セキュリティが高いのもformrunの魅力のポイントです。「ISO 27001 (ISMS)」の認証取得やプライバシーマークの付与認定、SSL/ TLSによる暗号化通信、24時間365日のサーバー監視体制など対策がとられています。
フォームを活用する際は、名前や住所、メールアドレスなど重要な個人情報を取り扱います。ユーザーに安心してフォームを利用してもらうためにも、フォームのセキュリティは必須です。
【2024年完全版】Googleフォームの使い方を徹底解説|作り方から作成例まで詳しく紹介
<h2>Googleフォームの活用が難しい場合はformrunの導入を検討しましょう</h2>
本記事では、Googleフォームで人数制限を設定する方法を解説しました。Googleフォームでは下記の2パターンの人数制限を設定できます。
- 回答数が人数制限に達した時点でフォームごとクローズする
- 人数制限に達した選択肢のみを消す
上記の人数制限を設定するには、Googleフォームのスクリプトエディタにコードを記載する必要があります。日程調整やイベントの予約フォームとしてGoogleフォームを運用したい場合、人数制限を設定しておきましょう。
ただし、Googleフォームには下記のデメリットがあります。
- デザインの自由度が低く、回答者がGoogleフォームを使用しているとすぐに分かってしまう
- 回答や回答顧客の管理ができない
- 自動返信メールやファイルアップロード項目などの機能に制限がある
フォームを本格的に運用したい場合には、機能が不十分に感じられることもあるでしょう。
- デザイン性の高いフォームにし、回答者が入力しやすいフォームにしたい
- サイトやサービスの世界観にあったフォームにしたい
- 自動返信メール・ファイルアップロード項目など、より充実した機能を使いたい
上記のように感じている管理者の方はフォーム作成ツール「formrun」を検討してみるのもおすすめです。無料での利用もできますので、ぜひ一度、試してみてはいかがでしょうか。
Sansan、BASE、hey、DMMなど幅広い規模の企業に導入されており、自社に最適なフォームを作ることが可能です。
▼ビジネス利用において、formrunユーザーの7割がGoogleフォームから変更しています。formrunとGoogleフォームの違いを下記の記事で詳細をご覧ください。