前提
GAS初心者です。
まず、やりたい最終目標としてはタイトルの通りで、Googleフォームに入力された内容が担当者にメールで飛ぶようにGASを作成したいです。
大まかな記述はできたのですが、以下の質問を参考にして記載したコードが上手く動いてくれず、メール文に載ってくれませんでした。
https://teratail.com/questions/b2jmdsssrijrro
変数を上記回答そのまま利用してしまっているので、そこが問題かも?というところまでは浮かんだのですが、参考にした質問の②と③は必要ない機能のため、自分のスクリプトに当てはめた時にどこを修正する必要があるのか、もしくは追加で変数の宣言等が必要なのかが分かりませんでした。
さらに、この番号を「001」→「002」のように頭に「00」を付けた3桁のフォーマットに指定したいのですが、こちらはスプレッドシートとスクリプトのどちらで指定するのでしょうか?
フォーマットの指定方法と、スプレッドシートから値を取得してメール文に載せる方法をご教示いただけますと幸いです。
どうぞよろしくお願いいたします。
発生している問題・エラーメッセージ
TypeError: Cannot read property 'getRow' of undefined at sendMessage(コード:57:23)
getRowはメソッドの認識なので、未定義というエラーの状態がよくわかっていないです。
該当のソースコード
JavaScript
1FormApp.getActiveForm() 2function sendMessage(e) { 3 // GoogleFormから回答内容を取得 4 let itemResponses = e.response.getItemResponses(); 5 6 // 各変数定義 7 let name; 8 let email; 9~(中略)~ 10 11 // スプレッドシートの受付番号を取得して変数rowに代入 12 const row = e.range.getRow(); 13 const sheet = e.range.getSheet(); 14 row = sheet.getRange(row, 2); 15 // 送信先のメールアドレス 16 const mailadress = `${email}`; 17 // 件名変数 18 const subject = '件名'; 19 // 本文変数 20 let body = ''; 21 22 body += `${name}様\n\n`; 23 ~(中略)~ 24 body += '受付番号: ${row}\n'; 25 body += `お名前: ${name}\n`; 26 body += `メールアドレス: ${email}\n`; 27 ~(中略)~ 28 29 // メールを送る際の変数を設定 30 GmailApp.sendEmail(mailadress, subject, body);
試したこと
1.スプレッドシートに以下の関数を追加
=arrayformula(if(B1:B<>"",row(A1:A)-1,""))
2.スプレッドシートから値を取得し、変数に代入する記述を追加
// スプレッドシートの受付番号を取得して変数rowに代入 const row = e.range.getRow(); const sheet = e.range.getSheet(); row = sheet.getRange(row, 2);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/31 02:51 編集
2022/08/31 03:01
2022/08/31 07:38
2022/08/31 08:06 編集
2022/08/31 08:06
2022/08/31 08:11 編集
2022/08/31 08:21
2022/08/31 08:24
2022/08/31 08:56
2022/08/31 09:00