私は現在、同じGoogleシートに5つの異なるフォームを接続しています。私の最終目標は、誰かがフォームのいずれかに回答を提出すると、その回答を含むメールを受け取ることです。異なるフォーム送信後に異なるGoogle Script関数をトリガーする
私は、Googleフォームに応答確認機能があることは知っていますが、これはオプションではありません。この機能を有効にしている場合、領収書を希望しない場合でも、電子メールを記入せずにフォームを送信することはできません。
現時点で私が持っているコードは次のとおりです。
function ActivityFunction() {
var spreadsheet = SpreadsheetApp.openById("FORM ID");
SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[4]);
var sheet = spreadsheet.getActiveSheet();
var lastRow = sheet.getLastRow();
//Email Info
//Name
var range = sheet.getRange(lastRow,2,1,1);
var Name = range.getValues();
//Email Address
var range = sheet.getRange(lastRow,7,1,1);
var Email = range.getValues();
//Date
var range = sheet.getRange(lastRow,3,1,1);
var Day = range.getValues();
//Time
var range = sheet.getRange(lastRow,4,1,1);
var ExerciseTime = range.getValues();
//Activity
var range = sheet.getRange(lastRow,5,1,1);
var Activity = range.getValues();
//Intensity
var range = sheet.getRange(lastRow,6,1,1);
var Intensity = range.getValues();
var msg = "Hello "+Name+"!
Thank you for filling out today's activity form. Here are your responses.
Name: "+Name+"\n\Date: "+Day+"\n\Time: "+ExerciseTime+"\n\Activity: "+Activity+"\n\Intensity: "+Intensity+"\n\n\Have a great day!"
MailApp.sendEmail(Email,
"Activity Form: "+Day, msg);
}
私は、誰かが同じGoogleで別のワークシートに別のフォーム(ルートで提出した場合、フォームは、しかし、上のトリガを提出していたときにこのコードが動作しますスプレッドシート)、それは彼らに彼らの新しい投稿を送信しません。
私はどこかにこのようなコードとコメントが見つかりました:
function FormSubmitFunction() {
var form = FormApp.openById('FORM ID');
ScriptApp.newTrigger('ActivityFunction')
.forForm(form)
.onFormSubmit()
.create();
}
をしかし、私はエラーにそれを実行するたびに取得します。
TL; DRアクティブスプレッドシートを、ユーザーのフォームがルーティングされたワークシートに設定し、それぞれの機能を起動するにはどうすればよいですか。
ありがとうございます!
は、あなたが拡大していいです:
以下のコードのセットアップは、指定されたフォーム(.forForm)これだけので、あなたのコードは、他の形態は、提出されたときにトリガーされませんでした、その具体的なフォームが送信されたときにトリガーのための特定のトリガそれで少し?私はあなたの提案をどのように実装することができるのか少し失われています。 – jschwartz9502