前提・実現したいこと
GASでGmailからスプレッドシートに転記しようとしています。エンジニアではなく初心者です。どなたかご教授いただけないでしょうか?よろしくお願い致します。
以下のgmail内の重複している項目の内容を個別に転記すること試みています。
(例)
[連絡先1]
名前:○○○○
クラス:●●●●
MAIL:××
LINE ID:▲▲▲
LINE QR :■■
[連絡先2]
名前:○○○
クラス:□□
MAIL:
LINE ID:△△
LINE QR :
[連絡先3]
名前:○○
クラス:
MAIL:
LINE ID:
LINE QR :
上記のgmailから、項目名:の右側の部分○○、●●の部分のみを抽出し、スプレッドシートに1行になる形で転記しようとしています。3項目めのMAIL:までの短いバージョンでは転記出来ました。でもLINE ID以降の2項目を同様に追加すると、エラーは出ずに実行されるものの、ログが出ずにスプレッドシートにも転記されない状態です。
どうかよろしくお願いします。
発生している問題・エラーメッセージ
転記がされません。エラーメッセージはありません。
該当のソースコード
GAS
1function myFunction17() { 2 3 var start = 0; 4 var max = 500; 5 var threads = GmailApp.search('メールタイトル',start,max); 6 var messe = GmailApp.getMessagesForThreads(threads); 7 8 for(var i = 0; i < messe.length; i++) { 9 for(var j = 0; j < messe[i].length; j++) { 10 var date = threads[i].getMessages()[j].getDate(); 11 var body = messe[i][j].getPlainBody(); 12 13 const regex =/名前:(.*?)\r\n(.*?)クラス:(.*?)\r\n(.*?)MAIL:(.*?)\r\n(.*?)'LINE ID:'(.*?)\r\n(.*?)'LINE QR:'(.*?)\r\n/g; 14 15 //文字列を発見できない場合次へ飛ぶ 16 if(!body.match(regex)){ 17 continue; 18 } 19 var data =body.match(regex).map(x=>{ 20 var Name = /名前:(.*?)\r\n/.test(x)? RegExp.$1 : ''; 21 var Class = /クラス:(.*?)\r\n/.test(x)? RegExp.$1 : ''; 22 var Mail = /MAIL:(.*?)\r\n/.test(x)? RegExp.$1 : ''; 23 var Linenum = /'LINE ID:'(.*?)\r\n/.test(x)? RegExp.$1 : ''; 24 var Lineqr = /'LINE QR:'(.*?)\r\n/.test(x)? RegExp.$1 : ''; 25 return [Name, Class, Mail, Linenum, Lineqr]; 26 }); 27 28 //横並びにしたいので配列を1列に変更 29 const arrayFlat = data.flat(); 30 31 //[Ljava.lang.Object;@57e数字 等と書き込み出来なくなったのを防ぐ 32 var Renraku = String(arrayFlat); 33 34 // 書き込むシートを取得 35 var sheet = SpreadsheetApp.getActive().getSheetByName('test2'); 36 37 // 最終行を取得 38 var lastRow = sheet.getLastRow() + 1; 39 40 sheet.appendRow([date,Renraku]); 41 Logger.log([date,Renraku]); 42 43 //1つのセル内で連続してしまったデータをセルに分割 44 var range = sheet.getRange(lastRow,2); 45 range.splitTextToColumns(); 46 }; 47 }; 48};
試したこと
const regex =の所のLINE IDをそのまま記載すると文字色がピンクだったので文字を''で囲み(名前:と同様の)赤い文字になるようにしました。合わせて下のvarの部分も同様にしました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/23 08:09 編集
2021/09/23 08:17