① Googleフォームの回答通知をメール送信する方法(Google Apps Script)
② Googleフォームの回答期限を設定する方法(Google Apps Script)
(ご使用の際は自己責任でお願いします。)
■前提
・Googleフォームの回答がスプレッドシートに保存されていること
・通知先のメールアドレス(Yahoo、Outlookなど)が分かっていること
■手順
1.スプレッドシートを開く
フォームの回答が記録されているGoogleスプレッドシートを開く
2.Apps Scriptを開く
上のメニューから
「拡張機能」→「Apps Script」をクリック
3.コードを貼り付ける
開いた画面に、以下をそのまま貼り付ける
****************************************
function sendEmailOnFormSubmit(e) {
var responses = e.values;
var emailAddress = "ここに送信先メールアドレスを書く";
var subject = "新しいフォーム回答";
var message = "新しい回答が送信されました:\n\n" + responses.join("\n");
MailApp.sendEmail(emailAddress, subject, message);
}
****************************************
4.保存する
左上の保存ボタンをクリック
5.トリガーを設定する
左側のメニューから「時計アイコン(トリガー)」をクリック
「トリガーを追加」をクリック
以下のように設定する
・実行する関数
sendEmailOnFormSubmit
・実行するデプロイ
Head
・イベントのソース
スプレッドシート
・イベントの種類
フォーム送信時
設定できたら「保存」をクリック
初回のみアクセス許可が求められるので許可する
6.動作確認
Googleフォームに自分で回答を送信する
指定したメールアドレスに通知が届けば成功
■補足
・メールはGmailの仕組みを使って送信されるが、宛先はGmail以外でも問題ない
・うまくいかない場合は「トリガー」が正しく設定されているか確認する
■前提
・回答期限を設定したいGoogleフォームを編集できること
・GoogleアカウントでGoogleフォームを利用していること
■手順
1.Googleフォームを開く
回答期限を設定したいGoogleフォームを、編集画面で開く
2.Apps Scriptを開く
右上の「︙」をクリックし、
「スクリプト エディタ」または「Apps Script」をクリックする
3.コードを貼り付ける
開いた画面に、以下をそのまま貼り付ける
****************************************
const DEADLINE_ISO = '2026-03-31T23:59:00+09:00';
function closeForm() {
const form = FormApp.getActiveForm();
form.setAcceptingResponses(false);
form.setCustomClosedFormMessage('回答期限を過ぎたため、受付を終了しました。');
}
function reopenForm() {
const form = FormApp.getActiveForm();
form.setAcceptingResponses(true);
form.setCustomClosedFormMessage('');
}
function installOneTimeCloseTrigger() {
ScriptApp.getProjectTriggers().forEach(t => {
if (t.getHandlerFunction() === 'closeForm') {
ScriptApp.deleteTrigger(t);
}
});
const when = new Date(DEADLINE_ISO);
ScriptApp.newTrigger('closeForm').timeBased().at(when).create();
}
****************************************
4.期限日時を変更する
次の部分を、自分の設定したい日時に書き換える
const DEADLINE_ISO = '2026-03-31T23:59:00+09:00';
たとえば、2026年4月10日17時30分に締め切る場合は、次のようにする
const DEADLINE_ISO = '2026-04-10T17:30:00+09:00';
5.保存する
左上の保存ボタンをクリックする
6.タイムゾーンを確認する
左側または画面内の「プロジェクトの設定」を開く
タイムゾーンが
Asia/Tokyo
になっていることを確認する
違っている場合は、Asia/Tokyo に変更して保存する
7.トリガーを設定する
画面上部の関数一覧から
installOneTimeCloseTrigger
を選ぶ
その状態で実行ボタンをクリックする
初回のみアクセス許可が求められるので許可する
8.アクセス許可の画面が出たとき
「このアプリは Google で確認されていません」と表示された場合は、
「詳細」をクリックし、
「安全ではないページに移動」またはそれに近い表示をクリックして進む
その後、内容を確認して「許可」を押す
これは、自分で作成したApps Scriptを自分で使うときによく出る表示
9.設定できたか確認する
左側のメニューから「時計アイコン(トリガー)」をクリックする
closeForm
が表示されていれば設定完了
10.動作
指定した日時になると、自動でGoogleフォームの回答受付が終了する
フォームを開いた人には、次のメッセージが表示される
回答期限を過ぎたため、受付を終了しました。
■回答受付を再開したいとき
関数一覧から
reopenForm
を選んで実行する
■期限を変更したいとき
コード内の
DEADLINE_ISO
を書き換えてから、もう一度
installOneTimeCloseTrigger
を実行する
前の設定は自動で削除され、新しい日時で再設定される
■補足
・Googleフォームには、回答期限を直接設定する標準機能はない
・この方法は、Google Apps Script を使って指定日時に自動で受付を止めるやり方
・学校や会社のGoogleアカウントでは、管理者の設定によってApps Scriptが使えない場合がある
・うまくいかない場合は、トリガーが正しく設定されているか確認する