フォーム送信時に処理したい(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["質問名"][0]のように、[0]で値を取り出します。
フォームに登録した場合
フォームの回答オブジェクトとして渡されます。
プロパティ |
内容 |
|---|---|
|
送信された回答全体( |
|
フォーム本体( |
1function onFormSubmit(e) {
2 const items = e.response.getItemResponses();
3 items.forEach(item => {
4 Logger.log(`${item.getItem().getTitle()}: ${item.getResponse()}`);
5 });
6}