###Gmail本文の表をそのままコピペして番号を整理したい
お疲れ様です。
毎日送付されてくる特定の件名のメールを
送られてきたら、都度新しくシートを作成してそのシートにコピペ。
みたいなことをGoogle Apps Scriptで自動化できるシステムを作っています。
###特定の件名のメールを検索し、最新のメールの本文を取得
function getMail() { /* メールを検索し本文を変数に保存 */ var threads = GmailApp.search('subject:Softbank Daily Results - SIM Box Detection'); // メールを検索し一覧を取得 var thread_top = threads[0]; // そのうちいちばん新しいメールを取得 var mail_body = thread_top.getMessages()[0].getPlainBody(); // 本文のテキストを取得 var mail_body_split = mail_body.split(/\r\n|\r|\n/); // メールの本文を改行ごとに配列に格納 /* シート名用にタイムスタンプを取得 */ var now_time = new Date(); // 現在のタイムスタンプを取得 var timestamp = now_time.getFullYear()+"/"+(now_time.getMonth()+1)+"/"+now_time.getDate(); // タイムスタンプを整形(YYYY/MM/DD) /* シートを追加(シート名はタイムスタンプ */ var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); objSpreadsheet.insertSheet(timestamp); /* シートの移動(上記で作成したシートに移動) */ var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheetByName(timestamp); spreadsheet.setActiveSheet(sheet); /* セルにデータを追加(A1のセル) */ for(var i=0; i<mail_body_split.length; i++) { // 配列のデータの数(改行の行数)だけ繰り返す sheet.getRange(i+1,1).setValue(mail_body_split[i]); // 1行ごとに貼り付ける(貼り付けるセルを1行ずつ下にする) } }
さらっとスクリプトの流れを書きますと、、、
① 特定の件名のメールを検索し、最新のメールの本文を取得
② シートを作成する前に、シート名をその日の「年/月/日(YYYY/MM/DD)」にするためのタイムスリップを取得
③ ②で取得したタイムスリップ名のシートを追加
④ ③で作成したシートをアクティブ化(セルに本文を挿入するため)
⑤ ④でアクティブ化したシートに本文を挿入
###スクリプト実行した結果、本文の表情報が挿入されない
対策として、⑤セルにデータを追加(A1セル)
sheet.getRange('A1').setValue(mail_body);
今回作成したスクリプト内容では、メールの本文を全てテキストで取得しているため、
表はまだ作り出せていません。
欲しい結果はメールの本文から表の情報をそのまま引っ張り出して
スプレッドシートで見れるようにしたいです。
アドバイス頂けますでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/01 03:15
2017/08/01 03:19 編集
2017/08/04 03:24