Googleフォームを管理していると、Googleフォームに人数制限を設定する方法が分からない。または、質問の選択肢に人数制限を設定する方法が分からないと頭を悩ませている方も多いのではないでしょうか?
Googleフォームではスクリプトエディタにスクリプトを記載すれば、フォームまたは選択肢に人数制限を設定できます。人数制限を設定すれば、日程調整やイベントの予約フォームとしてGoogleフォームを運用できるのです。
そこで、本記事ではGoogleフォームで人数制限を設定する際の概要を踏まえた上で、Googleフォームのスクリプトエディタにスクリプトを記載する手順をご紹介します。
もし、Googleフォームの機能では不十分と感じている場合、フォーム作成ツール「formrun」がおすすめです。formrunを使用すると下記の5つのメリットがあります。
- 人数制限を2ステップで設定可能
- フォームの受付上限を1クリックで設定可能
- プログラミング不要で簡単設定
- ワンクリックでrecaptcha設定可能
- マウス操作でデザイン設定可能
- お問い合わせ管理、メール対応も可能
- 自動メールやChatworkなどツール通知機能も有り
以上の機能が完備されており、基本料金は無料です。
▼ビジネス利用において、formrunユーザーの7割がGoogleフォームから変更しています。formrunとGoogleフォームの違いを下記の記事で詳細をご覧ください。
>> formrunとGoogleフォームの違い
人数制限付きフォームの詳しい作成方法はこちらのQ&Aをご覧ください。
>> フォームの受付上限を設定する方法
目次
Googleフォームで作成した予約システムに人数制限(定員)を設定する方法2選
Googleフォームで作成した予約システムに人数制限を設定するには、Googleフォームのスクリプトエディタにスクリプトを記載する必要があります。人数制限を設定していなければ、手動でGoogleフォームの受付終了を操作しなければなりません。
Googleフォームで作成した予約システムに設定できる人数制限の方法は、下記の2つです。
- 回答数が人数制限に達した時点でフォームごとクローズする
- 人数制限に達した選択肢のみを消す
人数制限に達した選択肢のみを消す場合は、定員に達した項目がフォームの選択肢から削除されてしまう点に注意です。
そのため、スクリプトエディタにスクリプトを記載することに加えて、Googleスプレッドシートと連携する必要があります。Googleスプレッドシートと連携しておけば、回答はスプレッドシート内に記録されます。
回答数が人数制限に達した時点でフォームごとクローズする手順
まず、回答数が人数制限に達した時点でフォームごとクローズする手順をご紹介します。具体的には下記の手順に沿って設定します。
- サンプルフォームを作成する
- フォームのスクリプトエディタを開きコードを記載する
- プロジェクトを保存して実行する
- 回答数が人数制限に達した際にフォームをクローズするようトリガーを設定する
- 回答数が人数制限に達した際の表記を設定する
手順① サンプルフォームを作成する
最初に人数制限を設定するサンプルフォームを作成します。いきなり、人数制限を設定したいフォームに設定を行うと、エラーやトラブルが発生する可能性があるためです。まずは、サンプルフォームでテストしてから、実際に設定したいフォームに人数制限を設定しましょう。
サンプルフォームを作成する手順は下記の通りです。
- Googleアカウントを作成
- テンプレートを作成
- パーツを追加
- 設問/選択肢の作成
- デザインの設定
- 詳細設定
- 公開設定
下記の記事において詳しいGoogleフォームの作り方をご紹介しています。
>>【2024年完全版】Googleフォームの使い方を徹底解説|作り方から作成例まで詳しく紹介】
手順② フォームのスクリプトエディタを開きコードを記載する
サンプルフォームを作成できたら、フォームのスクリプトエディタを開き、コードを記載します。具体的な手順は下記の通りです。
- フォームの右上「︙」をクリック
- 「スクリプトエディタ」をクリック
- すでに書き込まれているコードを削除
- 以下のコードをコピペしてペースト
function endFormCheck() { var LIMIT_COUNT = 1; //ここに上限値を設定 var form = FormApp.getActiveForm(); if (form.getResponses().length >= LIMIT_COUNT) { form.setAcceptingResponses(false); } }
スクリプトの上限値を設定する部分には、設定したい人数制限の数値を記入しましょう。2人が回答した時点でGoogleフォームをクローズしたい場合は「2」と記載します。
手順③ プロジェクトを保存して実行する
続いて、プロジェクトを保存して実行します。具体的な手順は下記の通りです。
- 画面上部の「プロジェクトを保存」をクリック
- 「プロジェクト名」を設定
- 「実行」をクリック
- 「権限を確認」をクリック
- 実行ログにエラーがでないことを確認
手順④ 回答数が人数制限に達した際にフォームをクローズするようトリガーを設定する
続いて、回答数が人数制限に達した際にスクリプトが実行されるようにトリガーを設定します。トリガーが設定されると人数制限に達した時点でフォームがクローズされます。具体的な手順は下記の通りです。
- 左メニューから「トリガー」を開く
- 「トリガーを追加」をクリック
- 「実行する関数を選択」を下記のように設定
- 実行する関数を選択:endFormCheck
- 実行するデプロイを選択:Head
- イベントのソースを選択:フォームから
- イベントの種類を選択:フォーム送信時
- エラー通知設定:毎日通知を受け取る
手順⑤ 回答数が人数制限に達した際の表記を設定する
続いて、回答数が人数制限に達した際の表記を設定します。例えば、「人数制限に達したため回答を締め切りました」のような文言です。具体的な手順は下記の通りです。
- Googleフォームの編集画面で「回答タブ」をクリック
- 「回答を受付中」を「回答を受け付けていません」に変更
- 回答者へのメッセージに文章を入力
- 「回答を受け付けていません」から「回答を受付中」に変更
以上ですべての設定が完了です。あとは、回答数が人数制限に達した時点でフォームごとクローズするか動作確認を行いましょう。適切に設定できていれば、実際に人数制限を設定したフォームに同様の設定を行います。
回答数が人数制限に達した選択肢のみを消す手順
次は回答数が人数制限に達した選択肢のみを消す手順をご紹介します。具体的な手順は下記の通りです。
- サンプルフォームを作成する
- フォームからGoogleスプレッドシートを開き編集する
- フォームのスクリプトエディタを開きコードを記載する
- 選択肢が人数制限に達した際に選択肢を締め切るようトリガーを設定する
手順① サンプルフォームを作成する
まず、サンプルフォームを作成します。サンプルフォームを作成する理由と手順は先ほど、回答数が人数制限に達した時点でフォームごとクローズする手順でご紹介した通りです。
- Googleアカウントを作成
- テンプレートを作成
- パーツを追加
- 設問/選択肢の作成
- デザインの設定
- 詳細設定
- 公開設定
Googleフォームの作り方を詳しく知りたい方はこちらの記事をご覧ください。
>>【2024年完全版】Googleフォームの使い方を徹底解説|作り方から作成例まで詳しく紹介】
手順② フォームからGoogleスプレッドシートを開き編集する
サンプルフォームが作成できたら、GoogleフォームとGoogleスプレッドシートを連携します。具体的な手順は下記の通りです。
- フォームの回答ページ右上の「スプレッドシートの作成」をクリック
- スプレッドシートのシート名を分かりやすいものに変更
- 2つ目のシートを作成し、シートの名前を分かりやすいものに変更
- スプレッドシート内に候補日と定員を設定
候補日と定員を設定する際の具体例は下記の通りです。
候補日 | 定員(0のときは人数制限無し) |
5/5 | 30 |
5/6 | 0 |
5/7 | 30 |
5/8 | 30 |
5/9 | 30 |
Googleフォームとスプレッドシートを連携したい方はこちらの記事をご覧ください。
>> Googleフォームをスプレッドシートに連携する方法とは?画像17枚でわかりやすく解説
手順③ フォームのスクリプトエディタを開きコードを記載する
続いて、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; } }); }
コードを編集する際は、シート名と項目名に誤りがないように記載してください。
▼ 難しい手順やコード無しでフォームに人数制限を行いたい方はformrunをご利用ください。
formrunでは受付上限機能がついているため、受け付けたい人数の数字を打ち込むだけで完了します。ぜひformrunで人数制限付きのフォームを作成してみてください。
人数制限付きフォームの詳しい作成方法はこちらのQ&Aをご覧ください。
>> フォームの受付上限を設定する方法
手順④ 選択肢が人数制限に達した際に選択肢を締め切るようトリガーを設定する
続いて、選択肢が人数制限に達した際に選択肢を締め切るようにトリガーを設定します。具体的な手順は下記の通りです。
- スクリプトエディタ上部の「編集」をクリック
- 「現在のプロジェクトのトリガー」をクリック
- 「実行する関数を選択」を下記のように設定
- 実行する関数を選択:endFormCheck
- 実行するデプロイを選択:Head
- イベントのソースを選択:フォームから
- イベントの種類を選択:フォーム送信時
- エラー通知設定:毎日通知を受け取る
以上で設定完了です。あとは、選択肢が人数制限に達した際に選択肢が締め切られるか動作確認を行います。動作に問題がなければ、人数制限を設定したいフォームに同様の手順で人数制限を設定しましょう。
Googleフォームの回答数を確認(表示)する方法
Googleフォームの回答数を確認する方法が分からない場合、下記の手順で確認できます。
- Googleフォームを開く
- Googleフォーム上部にある「回答」をクリック
- 回答を確認
回答の確認方法を詳しく知りたい方はこちらの記事をご覧ください。
>>Googleフォームの回答を確認する方法とは?通知メールの設定手順も解説
Googleフォームをさらに活用する方法
Googleフォームでは人数制限以外にもさまざまな設定ができます。用途にあわせて設定を行えば、Googleフォームをさらに活用できるでしょう。具体的には下記のような設定が可能です。
- Googleフォームに回答があった際にメールを自動返信できる
- GASを使用すれば人数制限とチェックボックス(ラジオボタン)による項目の複数選択が設定できる
- GoogleフォームはQRコードで共有できる
Googleフォームに回答があった際にメールを自動返信できる
Googleフォームに回答があった際、回答したユーザーにメールを自動返信できます。デフォルトの設定では、回答があった際に自動返信メールは届かないため注意しましょう。具体的な手順は下記の通りです。
- Googleフォームで「設定タブ」をクリック
- 「回答」の設定を開く
- 「メールアドレスを収集する」をオン
- 「回答のコピーを回答者に送信」を「常に表示」へ変更
以上で設定完了です。設定が完了すれば、Googleフォームに回答があった際にメールが自動送信されます。
更に詳しくGoogleフォームの自動返信メール設定方法について知りたい方はこちらの記事をご覧ください。
>> 【画像で解説】Googleフォームの自動返信メールを設定する方法
GASを使用すれば人数制限の設定とチェックボックス(ラジオボタン)による項目の複数選択が設定できる
GAS(Google Apps Script)を使用すれば、人数制限の設定とチェックボックスによる項目の複数選択ができます。この設定を行えば、回答者は複数の選択肢を選択可能です。また、複数の選択肢を選択した場合にも定員に達した選択肢が選択肢から削除されます。
こちらの設定はGASとスプレッドシートの関数を組み合わせて実施できます。専門的な設定となるため、設定を実施する場合は下記の記事を参照してください。
>> 【GAS】Googleフォームの選択肢に定員を設定~チェックボックスでも対応】
GoogleフォームはQRコードで共有できる
Googleフォームは「クルクルマネージャー」というツールを使えば、QRコードでユーザーに共有できます。GoogleフォームへのリンクをQRコードにすれば、ユーザーが簡単にフォームにアクセスできるようになり、回答を集めやすくなるでしょう。また紙媒体での共有も可能となります。
具体的な手順は下記の通りです。
- GoogleフォームのURLをコピー
- 「クルクルマネージャー」でQRコードを作成
以上の操作を行えば、GoogleフォームをQRコードに変更できます。
また、 ビジネス用フォーム作成ツール「formrun」の利用もおすすめです。「formrun」はフォームのQRコードを自動生成でき、フォーム作成から問い合わせ管理まで一括で作成可能なツールです。ほとんどの機能が無料で体験できますので、気軽にさわってみてください。
>> formrunの詳細を確認する
▼GoogleフォームでQRコードを作成する方法は下記の記事で詳細に解説しています。
>> GoogleフォームでQRコードを作成する方法を解説!おすすめの作成可能なツール3選も紹介
人数制限付きフォームの詳しい作成方法はこちらのQ&Aをご覧ください。
>> フォームの受付上限を設定する方法
人数制限付きフォームを作成するなら「formrun」がおすすめ!
formrunにでは2ステップで人数制限付きフォームを作成できる以外にもGoogleフォームのデメリットをカバーできる以下の4つの特徴があります。
- テンプレートが豊富
- EFO(フォーム最適化)に役立つ
- セキュリティが高い
テンプレートが120種類以上ある
formrunはgoogleフォームに比べ、テンプレートが豊富なのが特徴です。お問い合わせ、アンケート、申込みなどのさまざまな用途のテンプレートが用意されているため幅広い業種や用途に合わせたフォームに対応できます。
formrunのテンプレートはそのまま利用できるリッチな見た目で、用途に合わせて必要な設問が最適な順番で配置されているため、
設問タイトルを少し修正するだけで簡単に高クオリティのフォームを作成できます。
テンプレートの設問に項目の追加・削除・順番の変更等もワンクリックで簡単に修正できます。
ぜひformrunのテンプレートを使用して高クオリティなフォームを作成してみてください。
EFO(フォーム最適化)に役立つ
送信する際のエラーや、項目数が表示されていない、ブラウザを間違えて閉じてしまうなど、
フォームにまつわるよくある上記のようなストレスが原因でフォームから離脱するユーザーは7割を超えると言われています。
それらの離脱を防ぐため、回答者が便利にフォームを利用できる取り組みとして、残項目数表示や、ページ分割機能、入力途中保存、リアルタイムでのエラー表示機能などがあります。
そのためユーザーは、「自分の入力内容に間違いがないか」「あと何分で完了するか」などを常に把握できるため、回答負担が大幅に減ります。
EFO機能を導入するには約30,000円の費用がかかることが一般的ですが、formrunでは、わずか3,000円〜EFO機能を導入できます。
ぜひformrunでEFO機能を導入し、フォームの通過率が上がる経験をしてみてください。
セキュリティ対策が万全
セキュリティが高いのもformrun(フォームラン)の魅力のポイントです。
「ISO 27001 (ISMS)」の認証取得やプライバシーマークの付与認定、SSL/ TLSによる暗号化通信、24時間365日のサーバー監視体制など様々な対策がとられています。
フォームは、名前や住所、メールアドレスなど重要な個人情報を取り扱います。
ユーザーに安心してフォームを利用してもらうためにも、フォームのセキュリティはとても重要です。
安全なフォーム運用や個人情報の取り扱いは、顧客からの信用に大きく影響するため、セキュリティーを重視している方にはフォームランの利用がおすすめです。
Googleフォームの活用が難しい場合はformrunの導入を検討しましょう
本記事では、Googleフォームで人数制限を設定する方法を解説しました。Googleフォームでは下記の2パターンの人数制限を設定できます。
- 回答数が人数制限に達した時点でフォームごとクローズする
- 人数制限に達した選択肢のみを消す
上記の人数制限を設定するには、Googleフォームのスクリプトエディタにコードを記載する必要があります。日程調整やイベントの予約フォームとしてGoogleフォームを運用したい場合、人数制限を設定しておきましょう。
ただし、 Googleフォームには下記のデメリットがあります 。
- デザインの自由度が低く、回答者がGoogleフォームを使用しているとすぐに分かってしまう
- 回答や回答顧客の管理ができない
- 自動返信メールやファイルアップロード項目などの機能に制限がある
フォームを本格的に運用したい場合には、機能が不十分に感じられることもあるでしょう。
- デザイン性の高いフォームにし、回答者が入力しやすいフォームにしたい
- サイトやサービスの世界観にあったフォームにしたい
- 自動返信メール・ファイルアップロード項目など、より充実した機能を使いたい
上記のように感じている管理者の方は フォーム作成ツール「formrun」を検討してみるのもおすすめです。無料での利用もできますので、ぜひ一度、試してみてはいかがでしょうか。
Sansan、BASE、hey、DMMなど幅広い規模の企業に導入されており、自社に最適なフォームを作ることが可能です。
▼ビジネス利用において、formrunユーザーの7割がGoogleフォームから変更しています。formrunとGoogleフォームの違いを下記の記事で詳細をご覧ください。
>> formrunの詳細を確認する
人数制限付きフォームの詳しい作成方法はこちらのQ&Aをご覧ください。
>> フォームの受付上限を設定する方法