質問: objSheet.getDataRange().getLastRow(); //シートの最終行に追加 objSheet.getRange(lastRow+1, 1).setValue(date); objSheet.getRange(lastRow+1, 2).setValue(eInformation); objSheet.getRange(lastRow+1, 3).setValue(link); objSheet.getRange(lastRow+1, 4).setValue(msid); } ```
回答: まともに動かんのだから、丸投げで書いての意味だと再解釈して回答しなおし。 ``` function getInfo(body) { const reg = /抽出情報1(.*?)(?\r)/; if (!reg.test(body)) return "no info"; return body.match(reg)[0].replace(' 抽出情報1:', ''); } function main() { //Gmailから特定条件のスレッドを検索しメールを取り出す //外部からの返信やチーム内での返信は除外する var query = '(is:unread "問い合わせ")'; query += ' OR (in:spam "問い合わせ")'; query += ' OR (- "RE")'; query += ' OR (- "Re")'; query += ' OR (- "FWD")'; query += ' OR (- "Fwd")'; const colleague = ["tana@example.com", "suzu@example.com"]; //条件にマッチしたスレッドを取得 const myThreads = GmailApp.search(query, 0, 1); //スレッドからメールを取得する →二次元配列で格納 var ret = []; const sheet = SpreadsheetApp.getActive().getSheetByName("シート名"); const ids = sheet.getDataRange().getValues().map(function (e) { return e[3]; }); const myMsgs = GmailApp.getMessagesForThreads(myThreads).forEach(function (threads) { thread.forEach(function (msg) { var id = msg.getId(); if (ids.indexOf(id) !== -1) return; if (!msg.isUnread()) return; if (msg.getTo() !== "じぶんのあどれす") return; //あてながふくすういると、これではむり if (colleague.indexOf(msg.getFrom()) !== -1) return; msg.markRead(); ret.push([msg.getDate(), getInfo(msg.getPlainBody()), msg.getPermalink(), msg.getId()]); }); }); sheet.getRange(sheet.getLastRow() + 1, 1, ret.length, 4).setValues(ret); } ```