ChatGPTに受信メール検索してスプレッドシート書込みするGASを書かせてみた

メール内容からピックアップ集計したい

JCBのデビットカードを利用すると、その都度以下のようなメールが届く。

明細情報はMyJCBサイトへログインすれば分かるしCSV出力もできるものの、毎月ファイルを持ってきて集計するのが面倒だった。

そこで、、Gmail宛に届くこのメール内容から「ご利用日時(日本時間)」「ご利用料金」「ご利用先」行を抜き出して、Googleスプレッドシートに書き出すGoogle Apps Script(GAS)をChatGPTに作らせてみた。

ChatGPT宛に使ったキーワードは「以下のメール内容」「GScript」「Gmailの受信メール」「Googleスプレットシート」「以下のGScript」「以下のコード」「修正して」程度。

それで、以下のコードが出力できたのがなかなか素晴らしい。。。

function myFunction() {
let spreadSheetByActive = SpreadsheetApp.getActive()
let sheetByActive = spreadSheetByActive.getActiveSheet()
let sheetByName = spreadSheetByActive.getSheetByName("デビット明細")

var threads = GmailApp.search('subject:JCBデビットカードご利用のお知らせ');
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
for (var j = 0; j < messages.length; j++) {
var body = messages[j].getBody();
var lines = body.split('\n');
var date = lines[6].split(' ')[1];
var amount = lines[7].split(' ')[1];
var location = lines[8].split(' ')[1];

var cell = sheetByName.getRange(i+2,1);
cell.setValue(date);

var cell = sheetByName.getRange(i+2,2);
cell.setValue(amount);

var cell = sheetByName.getRange(i+2,3);
cell.setValue(location);

Logger.log('ご利用日時(日本時間): ' + date);
Logger.log('ご利用金額: ' + amount);
Logger.log('ご利用先: ' + location);
}
}
}

このコードを実行してスプレッドシート上には以下画像のような状態で出力されている。動作安定すれば、トリガーで日に1回自動実行かな。。。

この状態ではまだ、日時や料金が2バイト混在になっててシート上扱いづらい点、GAS自動更新時にすべての受信メールを毎回検索してしまう点など修正が必要なものの、ChatGPT使い込みたいな!と思わせてくれるには十分だった。

上記コードを、この一文「以下コードのamountから「円」を削除するように修正して」の下に貼り付けて、実行してみると…ヒントでなく答えがネタバレレベルで表示(汗

あああ、丸わかり。。。見直していこう(;´∀`)…

sponsored links