Googleフォームの回答を指定日時で締め切り|GASで自動化

Googleフォームでアンケートや申し込み受付をしていると、「〇月〇日の〇時になったら自動で締め切りたい」と思うことありませんか?
Googleフォームの標準機能では手動で「回答を受け付けていません」に切り替える必要がありますが、毎回指定の期日に自分で操作するのは手間がかかります。
そんなときに便利なのがGoogle Apps Script(GAS)です。
GASを使えば、指定した日時に自動でフォームの受付を終了させることができます。
この記事では、GASを使ってGoogleフォームを指定日時で自動締め切りする方法をご紹介します。
完成イメージ

- 指定日時までは通常通りフォームから回答を受け付け
- 指定した日時を過ぎると、自動的に「このフォームは現在回答を受け付けていません」と表示される
今回の方法では、GASでフォームの受付を停止するスクリプトを設定し、トリガーで指定日時を過ぎたら自動的に停止するよう設定します。
スクリプトの設定

GASでフォームの自動締め切りを設定するため、まずは対象となるGoogleフォームを開きます。
このとき、Googleフォームは「公開」状態のままにしておきます。

画面右上の「︙」(縦3つの点)→「Apps Script」をクリックします
function myFunction(){
}
が最初から入っているため、消去して以下のスクリプトを貼り付けます。
function closeFormNow() {
var form = FormApp.getActiveForm();
form.setAcceptingResponses(false); // 回答受付を停止
}
スクリプトの説明
FormApp.getActiveForm()
:このスクリプトが紐づいているGoogleフォーム本体を取得します。setAcceptingResponses(false)
:フォームの「回答受付」を停止し、「このフォームは現在回答を受け付けていません」の状態にします。

スクリプトを書いたら、名前を付けて保存します。

実行ボタンをクリックして、「権限の確認(承認)」を行います。
これは、自動化スクリプトが「このGoogleアカウントで本当にGoogleフォームを操作して良いですか?」という安全確認を行うもので、最初の1回だけ実施します。

公開済みのGoogleフォームが「回答を受け付けていません」に変わればスクリプトの設定はOKです。
(この後のトリガー設定で時間指定で自動的に締め切るため、一旦「回答を受付中」に戻します。)
トリガーの設定

エディタ画面の左側メニューから「時計マーク(トリガー)」をクリックします。

「トリガーを追加」または「新しいトリガーを作成します」をクリックします。

- 「実行する関数を選択」
-
closeForm
を選択します。 - 「実行するデプロイを選択」
-
Head
が表示されていれば、そのままでOKです。 - 「イベントのソースを選択」
-
時間主導型
を選択します。 - 「イベントの種類を選択」
-
特定の日時
を選択します。フォームを締め切りたい日時を「YYYY-MM-DD HH:MM」形式で入力します。
(たとえば、2025年6月21日の23:59に締め切りたい場合は、「2025-06-21 23:59」と入力)

保存をクリックして、トリガー設定完了となります。
トリガー設定時も初回のみ、権限の確認ダイアログが表示されます。
画面の案内に従ってGoogleアカウントで「許可」を選択します。

指定した日時に自動でフォームの受付が停止し、「回答を受け付けていません」の状態に変わります。
まとめ
Googleフォームの受付を自動で締め切るには、Google Apps Script(GAS)の「特定の日時」トリガーを使うことでできるようになります。
この方法なら締め切り作業を手動で行う手間がなくなり、うっかり締め忘れたということも防げます。
Googleフォームでの申し込みやアンケート管理をよりスムーズにしたい時に活用できますね。
弊社では、Google Apps Script(GAS)を活用した業務効率化サポートのほか、ITツールの導入支援やIT導入補助金の申請サポートも行っております。
ぜひお気軽にご相談ください。貴方の業務改善を全力でサポートいたします。
コメント