概要
Googleフォームで、期限になったらGoogleフォームを締め切りたいけど、手動で回答を無効にする必要があり、締め切り忘れたり、面倒だったりがあると思います。
簡単なソースコードを貼り付けてトリガーを設定すれば決まった日時に無効にすることができるのでその方法の説明です。
プログラムなどが分からない方でも簡単にできると思いますので是非試してみてください。
前準備
まずは、通常通り、Googleフォームを作成してください。
完成して、Googleフォームを無効にする設定をする準備ができたら次からの手順で設定を行ってみてください。
ソースコード
スクリプトエディタを開く
Googleフォームのスクリプトエディタを開きます。
参考
スクリプトエディタの開き方は、「GAS(Google Apps Script)のコンテナバインド型とスタンドアロン型」のコンテナバインドスクリプトを参考にしてください。
ソースコード
以下のソースコードを、スクリプトエディターに貼り付けてください。
/**
* 回答の受付を終了にする
*/
function form_close() {
const form = FormApp.getActiveForm();
form.setAcceptingResponses(false);
}
実行
ソースコードがしっかり動くかをまずは確認します。
- メニューで「form_close」が選択されていることを確認して、「実行」をクリックします。

メモ
初回実行時で「承認が必要です」とポップアップが表示された場合は、実行できるように承認を行なってください。承認方法は以前の投稿の「GASで初回実行時の承認・許可」をご覧ください。
- Googleフォームの「回答」タブより、「回答を受け付けていません」と変更されていることを確認します。

- 正常に動くことが確認できたら、トグルをクリックして再度、回答を受付している状態に戻します。(「回答を受付中」と表示されます。)

トリガーの設定方法
ソースコードが動くことが確認できたら、あとはGoogleフォームを締め切る日時に動くように設定をするだけです。
- スクリプトエディタの左側のメニューにある「トリガー」をクリックして、右下の「+トリガーを追加」ボタンをクリックします。

- 「実行する関数を選択」で「form_close」を選択、
「イベントのソースを選択」で「時間主導型」を選択、
「時間ベースのトリガーのタイプを選択」で「特定の日時」を選択、
「日時を入力」にGoogleフォームを締め切る日時を設定して、「保存」ボタンをクリックします。

- 保存したトリガーが一覧に追加されていたらトリガーの設定の成功です。

最後に
いかがだったでしょうか?
少しでも業務効率化につながると嬉しいです。