前提・実現したいこと
GASで下記を実現するプログラムを作ろうと考えています
①フォームから質問のジャンル・内容を投稿
②質問のジャンルが【定型】だったら定型のシートから件名・内容を抽出し、自動返答
(定型シートの中身を抜き出し、オブジェクト化、hlookで見つかれば定型h)
③質問のジャンルが定型のものではない(定型のシートにはない)であれば、別でメール送信
④そのあと別シートに転記
デバッグでは上記すべての動作がうまくいったのですが、
なぜかトリガーから行うと(フォームから投稿時)にうまくいかず、
エラーとして[TypeError: Cannot read property 'title' of undefined at tokoForm(sendglmai:56:73)]
とトリガのエラーに出てしまいます。
※トリガーはフォームからの送信時で設定しています。
発生している問題・エラーメッセージ
TypeError: Cannot read property 'title' of undefined at function Form_Naibu3no1() { ### 該当のソースコード
GAS
1function Form_Naibu3no1() { 2 3 const ss = SpreadsheetApp.getActiveSpreadsheet(); 4 const AnswerSh = ss.getSheetByName('フォームの回答') 5 const RowNumber = AnswerSh.getLastRow(); 6 7 //回答に使うデータを配列で取得、最終行の13列目(M)まで 8 const Answer2Values = AnswerSh.getRange(RowNumber,1,1,13).getValues(); 9 10 AnswerSh.getRange(RowNumber,12).setValues([ 11 //M列に関数(hlookupの埋め込み)&H列の値セット 12 [`=hlookup(H${RowNumber},'定型回答'!A1:AA3,1,0)`]]); 13 14 //replyValuesに定型回答の中身を入れる(配列) 15 const ReplySh = ss.getSheetByName('定型回答'); 16 const ReplyValues = ReplySh.getDataRange().getValues(); 17 18 //replyValuesの値を判定のためにオブジェクトに変更・convertObj_のファンクションは下に記載 19 const ReplyObj = convertObj_(ReplyValues); 20 21 console.log(ReplyObj); 22 console.log(Answer2Values[0][11]); 23 24 switch (Answer2Values[0][11] === '#N/A'){ 25 case true: 26 const TeikaigaiTitle = 'テスト2です【定形外】'+ Answer2Values[0][2]; 27 const TeikeigaiBody = '問い合わせフォームに定形外の問い合わせがありました\n\n' 28 + '【受付No】:' + Answer2Values[0][0] +'\n' 29 + '【問い合わせ日時】:' + Answer2Values[0][1] +'\n' 30 + '【内容】:' + Answer2Values[0][3] +'\n' 31 32 33 GmailApp.sendEmail('メールアドレス', TeikaigaiTitle, TeikeigaiBody); 34 break; 35 36 case false: 37 38 GmailApp.sendEmail(Answer2Values[0][2],ReplyObj[Answer2Values[0][11]]['title'],ReplyObj[Answer2Values[0][11]]['body']); 39 AnswerSh.getRange(RowNumber,13).setValue('定型送信済み'); 40 break; 41 42 } 43} 44 45 46function convertObj_(array){ 47 const replyObj = {}; 48 49 for (let i =1;i < array[0].length; i++){ 50 replyObj[array[0][i]] = {title: array[1][i], body: array[2][i]}; 51 } 52 return replyObj; 53}
試したこと
・フォーム、シート、プログラムのオーナーはすべて自分でした
・フォームとシートのリンクは切れていません
・コンテナバインドで作っています
・一回googleアカウントをログアウト後、再度ログインしてもダメでした
・トリガーの削除・再設置をしてもダメでした
・デバッグ&実行ボタンからは正常に動作(メールの送信まで完了)します
・トリガーをシートの起動時等にしたところ、正常に動きました
回答2件
あなたの回答
tips
プレビュー