フォーム送信時に処理したい(onFormSubmit)

1function onFormSubmit(e) {
2    // スプレッドシートにバインドした場合
3    const email = e.namedValues["メールアドレス"][0];
4    const name = e.namedValues["お名前"][0];
5    GmailApp.sendEmail(email, "受付完了", `${name}さま、送信を受け付けました。`);
6}

onFormSubmit関数は、Googleフォームが送信されたときに呼ばれる関数です。

onFormSubmitはインストーラブルトリガーなので、 onOpenやonEditと違い、事前にトリガーの登録が必要です。 そのかわり、メールの送信など認可が必要な操作もできます。

参考

トリガーの登録方法は トリガーを作成したい(ScriptApp.newTrigger) を参照してください。

引数したい(e)

onFormSubmit(e)の引数eは、トリガーをどこに登録したかで中身が変わります。

スプレッドシートに登録した場合

回答が追記されたスプレッドシートの行として渡されます。

プロパティ

内容

e.namedValues

質問名をキー、回答を配列にしたオブジェクト({"お名前": ["山田"]})

e.values

回答を左から順に並べた配列(["2026/09/08 10:00", "山田", ...])

e.range

追記された行の範囲(Range)

e.namedValues["質問名"][0]のように、[0]で値を取り出します。

フォームに登録した場合

フォームの回答オブジェクトとして渡されます。

プロパティ

内容

e.response

送信された回答全体(FormResponse)

e.source

フォーム本体(Form)

1function onFormSubmit(e) {
2    const items = e.response.getItemResponses();
3    items.forEach(item => {
4        Logger.log(`${item.getItem().getTitle()}: ${item.getResponse()}`);
5    });
6}

リファレンス