前提・実現したいこと
GASを使っての複数の形式のメールからのスプレッドシートへの転記にあたり、お名前を2種類の抽出条件で抽出しているのですが、この2つを一つのセルにまとめて記載するにはどうしたらよいでしょうか
発生している問題
行1はB列に名前が、行2はC列に名前が入っているような形(片方に名前が入っていればもう片方は空欄という状態)になっているため、これを一つの列に入るようにしたいのです。
該当のソースコード
var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getRange(7, 21, sheet.getLastRow() + 1).getValues(); function getMail01(){ var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // シート名を記入 var objSheet = objSpreadsheet.getSheetByName("メール蓄積データ"); var sheet = SpreadsheetApp.setActiveSheet(objSheet); var start = 0; // 取得するメールの最大件数 var max = 100; // Gmailのラベル名をここに記載 var threads = GmailApp.search('is:unread to:メールアドレス',start,max); // 最後の行探してそれ以降に追加 挿入開始位置 var Messages = GmailApp.getMessagesForThreads(threads); var row = sheet.getLastRow() + 1; // 見出しがあるためシートの1行目を固定 sheet.setFrozenRows(1); // メールから抽出// for(var i = 0; i < Messages.length; i++) { for(var j = 0; j < Messages[i].length; j++) { var id = Messages[i][j].getId(); if(!hasId(id)){ var body = Messages[i][j].getPlainBody(); var date = threads[i].getMessages()[j].getDate(); var regName = new RegExp('お名前:' + '[\s\S]*?' + '職業|電話番号'); var Name = body.match(regName)[0].replace('お名前:', '').replace('職業', '').replace('電話番号', '').replace('\n|\r\n|\r', ''); var regName2 = new RegExp('お名前:'+ '.*?' + '\n|\r\n|\r'); var Name2 = body.match(regName2)[0].replace('お名前:', '').replace('\n|\r\n|\r', ''); // それぞれの項目をセルを指定してスプレッドシートへ転記 sheet.getRange(row,2).setValue([Name]); sheet.getRange(row,3).setValue([Name2]); row++
試したこと
あらかじめスプレッドシートの別セルに=B1&C2のように入力してみましたが空白で上書きされてしまうようでうまくいきませんでした
どのようにしたら良いかご教授願えれば幸いです。
宜しくお願い致します
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/21 11:46
2021/10/21 12:05
2021/10/21 13:01