選択肢やフォーム自体に人数制限を設けたい時は?
Googleフォームには、フォームの選択肢やフォームごとに人数制限を設ける機能は標準では備わっていない。しかし、例えば先着順でノベルティをプレゼントする場合や、参加人数に制限がある場合はこの方法は非常に便利で、フォーム全体を締め切りたいときに重宝することだろう。
以下のGoogle Apps Scriptを利用することで、この機能を実装することが可能だ。トラブルが出た際などは当サイトで責任は負わないがもし試したい人は自己責任でどうぞ。あらかじめ伝えておくと、スクリプトコードを記述する必要があるため、当然のことながらプログラミングの知識がある程度必要となる。
以下がGASのコード一例。一旦このコードを丸々コピーすればフォーム回答に人数制限をかけることが可能。
function checkFormResponses() {
// スプレッドシートのIDを指定
var spreadsheetId = 'YOUR_SPREADSHEET_ID'; // あなたのスプレッドシートIDに置き換えてください
var sheet = SpreadsheetApp.openById(spreadsheetId).getSheets()[0];
// 回答数を取得(ヘッダー行を除いた行数)
var responses = sheet.getDataRange().getValues();
var numResponses = responses.length - 1; // 最初の行はヘッダーなので1を引く
// 回答者が3名に達した場合
if (numResponses >= 3) {
// フォームを取得
var form = FormApp.openByUrl('YOUR_FORMS_EDIT_URL'); // フォームのURLをここに設定します
// フォームの受付を停止
form.setAcceptingResponses(false);
}
}
上のGASコードをGoogleフォームのスクリプトエディタを開きペースト。回答者の上限は赤字で示している「3」のところを変更すれば変更可能。フォームのURL(‘YOUR_FORMS_EDIT_URL‘)は編集画面のURL(”/edit”となっている)すべてをペーストする点に注意。公開用URLを貼るとエラーになるため人数制限が機能しない。一方でスプレッドシートのID( ‘YOUR_SPREADSHEET_ID‘)は編集URLの”d/”と”/edit”のシートIDのみを記載する必要がある。このあたりがよくわからないという人はGASでどうこういじる行為はトラブルのもとになるためおすすめしない。
エディタにペースト出来たら、
スクリプトをペーストしたら必ず保存を押す。初めて保存をすると、下記のようにGoogleアカウントを求められる場合があるのでその場合は使用のGoogleアカウントでログインして進めばOK。途中でスクリプトを実行してOKか警告が出る場合も前に進まないとこのスクリプトが使用できないためOKで進んでいく。
左のメニューから時計マークのアイコンをクリック。右下のトリガーを追加を押す。
下のように設定。特に注意が必要なのはイベントの種類を「フォーム送信時」に必ず設定すること。これをやらないと回答者が回答してもスクリプトが実行されないためカウントされず人数制限がかからない。
保存を押して終了。
一度締めきったフォームを再度回答可能にするには、フォームの編集画面の回答タブにて「回答を受け付けていません」のチェックを戻せば再度フォームが公開状態となる。
URLが長い!短縮方法は?
GoogleフォームのURLは比較的長くなりがちだ。URLを短縮するには、「送信」ボタンからURL共有メニューを開き、「URLを短縮」にチェックを入れれば完成。簡単すぎる。
まとめ
Googleフォームは、誰でも簡単にオンラインフォームを作成できる非常に便利なツールである。アンケート、イベントの出欠確認、問い合わせフォームなど、様々な用途で活用できる。本記事で解説した内容を参考に、Googleフォームを最大限に活用し、データ収集・分析の効率を向上させてほしい。