イベントの参加申込やプレゼントキャンペーン、アンケートなどで「先着○名まで受付」としたい場面はよくありますよね。
しかし、Googleフォームの標準機能には「回答数の上限を設定する」機能がありません。手動で受付を終了することはできますが、それではリアルタイムに制御できず、上限を超えてしまうリスクがあります。
そこで本記事では、Googleフォームで 回答数に上限を設定し、先着順で自動的に締め切る方法 を解説します。
スプレッドシートとの連携やGoogle Apps Script、アドオン(FormLimiterなど)を使えば、誰でも簡単に「先着順フォーム」を作ることが可能です。
「Googleフォームで人数制限をかけたい」「自動で受付を終了したい」と考えている方は、ぜひ参考にしてください。
Googleフォームは標準機能で回答数の上限を設定できる?
Googleフォームの基本機能の限界
Googleフォームには「受付を開始」「受付を終了」といった機能は用意されていますが、残念ながら 回答数に上限を設定する機能は標準では備わっていません。
たとえば「先着100名まで」と自動的に制御することはできず、管理者が自分で回答状況を見ながら手動で受付を終了する必要があります。
「回答受付を終了」機能はあるが手動のみ
Googleフォームには「回答を受付中/終了」の切り替え機能があります。
フォーム編集画面の「回答」タブからスイッチを切り替えるだけで、新規回答を停止させることは可能です。
しかし、この方法だと以下のような問題があります。
- 管理者がフォームを監視し続けなければならない
- 上限人数を超えてから手動で締め切ることになる
- 申込が集中すると「オーバー受付」してしまうリスクがある
そのため、 イベントやキャンペーンのように「先着順で締め切りたい」場合は標準機能だけでは不十分 です。
(初心者向け)Googleフォームで回答数に上限を設定する方法
Googleフォーム単体では人数制限ができませんが、アドオンを使うことで「先着順の締め切り」が簡単に実現できます。
特におすすめなのが「FormLimiter」という無料アドオンです。
FormLimiterとは?
FormLimiterは、Googleフォームに「回答数の制限」や「日時指定で自動締め切り」を追加できるアドオンです。
インストールするだけで、誰でも簡単に人数制限を設定できます。
- 上限人数に達したら自動的に回答を終了
- 締め切り日時を設定して自動停止も可能
- 終了後に「受付終了メッセージ」を表示できる
イベントの受付やキャンペーンの応募管理にピッタリの機能です。
回答数の上限を設定する方法
1.Googleフォームを開いた状態で「︙(その他)」メニュー →「アドオンを取得」へ進む

2.「formLimiter」と検索してインストール(9000万以上インストールされています)
アカウントを選択して、インストールを進めましょう。

3.インストール後、Googleフォームの右上にパズルアイコンが表示されるので、そこからformLimiterを起動します。

4.「number of form responses」を選択します。

先着で何名まで回答可能で、それを超えると回答を締め切るという設定です。
- Limit Type:number of form responses(回答数)
- when responses are greater than:数字を入力し、その数を超えたら締め切る(先着100名にしたい場合は「100」と入力)
- Message when submissions are closed:締め切った後に表示する文言
- Email from owner when submissions are closed:締め切ったときにEメールを受け取る
入力したら先ほどと同様にSave and enableを押して設定完了です。
これで先着XX名様まで応募可能といった企画が開催できます。
他の便利な使い方
- 日時で自動締め切り:「〇月〇日まで受付」などの設定も可能
- 人数+日時の併用:「先着100名または〇月〇日まで」など柔軟に管理できる
(上級者向け)Google Apps Scriptを使って回答数に上限を設定する方法
- 多少プログラミングに触れたことがある
- 「人数+日時」など複数条件を組み合わせたい
- アドオンに頼らず、Google純正機能だけで実現したい
アドオンを使えば簡単に上限を設定できますが、もっと柔軟に制御したい場合は Google Apps Script(GAS) を使う方法があります。
プログラミングに少し慣れている方なら、独自のルールで自動的にフォームを締め切ることが可能です。
基本の仕組み
- Googleフォームの回答は、Googleスプレッドシートに自動的に保存される。
- スプレッドシートの回答数をチェックし、指定した人数に達したらフォームを「受付終了」に切り替えるスクリプトを書く。
- スクリプトをトリガー(回答送信時など)に設定して自動実行。
サンプルコード
以下の例では、フォームの回答が100件に達したら自動で受付を停止するコードです。
function closeFormWhenLimitReached() {
var form = FormApp.openById('フォームIDをここに入力'); // 対象のフォームID
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('フォームの回答');
var responses = sheet.getLastRow() - 1; // ヘッダー行を除いた回答数
var limit = 100; // 上限人数
if (responses >= limit) {
form.setAcceptingResponses(false);
form.setCustomClosedFormMessage("受付は終了しました。ご応募ありがとうございました。");
}
}
スクリプトの設定手順
- Googleフォームと連携しているスプレッドシートを開く。
- メニュー「拡張機能」→「Apps Script」を開く。
- 上記のコードを貼り付け、フォームIDを差し替える。
- フォームIDは、GoogleフォームのURLに含まれる長い文字列。
- 例:
https://docs.google.com/forms/d/XXXXXX/edit
のXXXXXX
部分。
- 保存して実行権限を付与する。
- 「トリガー」を設定し、「フォーム送信後にスクリプトを実行」するようにしておく。
メリットとデメリット
- 上限人数を柔軟に設定できる
- メッセージを自由にカスタマイズ可能
- アドオンに頼らず純正機能だけで実現
- 初期設定にコードの知識が必要
- 権限付与やトリガーの設定に慣れていないとつまずきやすい
- 同時アクセスが集中すると稀に上限を超える可能性あり
応用例
- 日時と人数を組み合わせて締め切る
- 特定の条件を満たした回答だけをカウントする
- 上限に達したら自動で管理者にメール通知を送る
まとめ
Googleフォームには標準で「回答数の上限を自動で設定する」機能はありません。
そのため、イベントやキャンペーンで「先着○名まで」としたい場合には、以下の方法を活用する必要があります。
- 初心者向け:アドオン(FormLimiter)を利用する
→ 数分で設定でき、手軽に「人数制限フォーム」を作成可能。 - 上級者向け:Google Apps Scriptを利用する
→ 回答数や日時を組み合わせた柔軟な制御が可能。ただしコードの知識が必要。
つまり、
👉 「とにかく簡単に使いたい」なら アドオン
👉 「自由にカスタマイズしたい」なら GAS
を選べばOKです。
Googleフォームはシンプルで便利ですが、工夫次第で先着順の受付や人数制限といった高度な使い方もできます。
用途やスキルに合わせて最適な方法を取り入れ、スムーズなフォーム運用に役立ててください。
コメント