前提・実現したいこと
メールを取得し、スプレッドに書き出すGASを作成いたしました。
一部加工が必要なため、取得した内容をシートに書き出し、書き出した内容を別シートに吐き出す仕様です。
最後の別シートに吐き出すところでエラーが発生してしまいました。
どのように解消したらよいかわからずお知恵をお貸しいただけませんでしょうか。
発生している問題・エラーメッセージ
Exception: データの行数が範囲の行数と一致しません。データは 1 行ですが、範囲は 8.行です。(行 76、ファイル
該当のソースコード
function timer() { var ss = SpreadsheetApp.getActiveSpreadsheet();//スプレッドシートapp呼び出し //受信日時指定 const date = new Date() ;//現在時刻を取得 const unixTime = date.getTime();//UNIX TIMEに変換 const now = Math.floor(unixTime/1000); //ミリ秒を秒に変換 const term = now - 600; //現在時刻から10分(600秒)前 const termStr = term.toString(); //検索期間を文字列に変換 var strTerms = 'from:(メールアドレスXXXX) subject:(件名XXXXX) is:unread'; var myThreads = GmailApp.search(strTerms, 0,500); //条件にマッチしたスレッドを取得 var myMsgs = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得する →二次元配列で格納 var valMsgs = []; /* 各メールから日時、送信元、件名、内容を取り出す */ for(var i=0;i<myMsgs.length;i++){ for(var j=0;j<myMsgs[i].length;j++){ myMsgs[i][j].markRead(); //既読 valMsgs[i] = [];// valMsgs[i][0] = myMsgs[i][j].getDate(); valMsgs[i][1] = myMsgs[i][j].getFrom(); valMsgs[i][2] = myMsgs[i][j].getSubject(); valMsgs[i][3] = myMsgs[i][j].getBody().slice(0,1500); valMsgs[i][4] = myThreads[i].getPermalink(); } } /* スプレッドシートに出力 */ if(myMsgs.length>0){ var ss_obj = SpreadsheetApp.getActiveSpreadsheet(); var ss_sheet_XX = ss_obj.getSheetByName("シート①"); // 探索したいシート名を入力 var ss_range = ss_sheet_XX.getRange("B:B").getValues(); var row_last_num = ss_range.filter(String).length; //Browser.msgBox(row_last_num) ss_sheet_XX.getRange(row_last_num + 1, 1, i, 5).setValues(valMsgs); //シートに貼り付け /*共有ファイル*/ var ss_copyFrom = SpreadsheetApp.getActiveSpreadsheet(); var ss_copyTo = SpreadsheetApp.openById('XXXXXXXXX'); var sheet_copyFrom = ss_copyFrom.getSheetByName('シート②'); var sheet_copyTo = ss_copyTo.getSheetByName('最終出力先'); var copyValue = sheet_copyFrom.getRange(row_last_num +1, 2, valMsgs.length, 14).getValues(); sheet_copyTo.getRange(row_last_num-7, 5, valMsgs.length+1, 14).setValues(copyValue); } }
試したこと
コンソールログにてcopyValueを確認したところデータの抽出はできておりましたが、吐き出しの範囲エラーが起きてできないと思われます。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。