質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

1回答

676閲覧

Googleフォーム送信後の回答後メッセージをGASで変更したい

10-mo

総合スコア23

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2023/12/21 01:50

編集2023/12/21 01:51

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  • 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

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

こちらの件、実行不可とのことが分かりました。

投稿2023/12/22 01:47

10-mo

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問