実現したいこと
ここに実現したいことを箇条書きで書いてください。
- Googleフォームで回答後に表示される「受付ました」などと表示されるページのコメントをフォームの回答内容によって変更したいです。
前提
前回ご質問させていただいた内容に加えて、下記の内容を実現できないかと思っています。https://teratail.com/questions/7zgijuh9ilta3r
Googleフォームと連動している、スプレッドシートの【検索】シートの(B2)にメールアドレスが入力されたら、
フォーム後のコメントに「URL」(別サイトに飛ばすためのURLを記入)を、
入力なし→フォーム後のコメントに「登録がありません」
と表示させたいです。
発生している問題・エラーメッセージ
事前のコメント設定
Googleフォーム→「AAAA」
GAS→「date」(下記コードの)
※トリガーは、フォーム送信後です。編集・更新で動くかなと思ったのですが、反応無しでした。
使用してみると、、、
Aさん(1人目)→「AAAA」と表示される
Bさん(2人目)→「date」
Cさん(3人目)→「date」←送信時刻ではない
日時でテストしてみましたが、ズレが生じていて、送信者の人に対してズレたコメントが出てしまっています。
該当のソースコード
function multipleSearch() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const inquiry_sheet = ss.getSheetByName('問い合わせ');
const resultSheet = ss.getSheetByName("TEST");
const serchSheet = ss.getSheetByName("検索");
const lc = inquiry_sheet.getLastColumn();
const lr = inquiry_sheet.getLastRow();
const clc = resultSheet.getLastColumn();
const clr = resultSheet.getLastRow();
//問い合わせシートのメールアドレスを全て取得
//const search_values = inquiry_sheet.getRange(2,3,lr-1).getValues();//,1,lc-1
//console.log(search_values);
//問い合わせシートの最終行のアドレスを取得
//これをTESTシートのアドレスと一致するか確認する
const target_mail = inquiry_sheet.getRange(lr,3).getValue();
console.log(target_mail);
// TESTシートのメール全て取得
const resultSheet_values = resultSheet.getRange(2,2,clr-1).getValues();//,1,lc-
console.log(resultSheet_values);
//TESTシート内のメールと問い合わせのメールが一致するか
for (var ss_value of resultSheet_values){
var t_name = ss_value[0];
if (target_mail === t_name){ //←メールアドレスがマッチしたとき
const form = FormApp.openById("ID");//フォームIDを()内に入れる
//検索シートのB2にアドレスを記載するコード。
serchSheet.getRange("B2").setValue(t_name);
//フォーム送信後に表示するメッセージ
form.setConfirmationMessage('WebサイトURL')//()内に表示させたいメッセージを入れる
console.log(t_name); // ←ログの表示は一致したとき
break; // ←マッチしたら照合を終了
}
}
}
試したこと
function myfunction(){
const form = FormApp.openById("ID");//フォームIDを()内に入れる
const date = Utilities.formatDate(new Date(),Session.getScriptTimeZone(),"yyyy-MM-dd HH:mm:ss");
console.log(date);
form.setConfirmationMessage(date)//()内に表示させたいメッセージを入れる
}
を使用しました。
前の情報が残ったままだったので、 form.setConfirmationMessage(date)の前にform.clearConfirmationMessage(date)を入れてみましたが、これはエラーになりました。
TypeError: form.clearConfirmationMessage is not a function
よろしくお願いいたします。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。