How ToIT生活

楽天ペイの利用履歴をGoogleスプレッドシートに書き出す便利な方法 確定申告、家計簿の管理・集計に活用!

確定申告の集計に役立ちます!

楽天ペイの利用履歴の一覧がほしい

楽天ペイの利用履歴、どのように管理していますか?
アプリで閲覧はできても抽出ができないですよね。

家計簿や会計ソフトなどとも連携ができず、1件1件入力するのには時間がかかります。

そこでGmailとGoogleスプレッドシートを使用してまとめてデータを抽出しましたので、方法をご紹介します!

*Gmailに楽天ペイ利用のお知らせがくるように設定している場合の方法になります。

Gmailの設定

①Gmailのラベルを2つ新規作成します。
(作成方法はGmail でラベルを作成、管理するを参照)

・楽天ペイ利用:楽天ペイアプリご利用内容確認メールのラベル
・GAS処理済:GASで処理後に付与するラベル

②メールの自動振り分けとラベル設定をします。
(作成方法はGmail でメールのフィルタルールの作成を参照)

From:楽天ペイアプリご利用内容確認メールのメールアドレスを入力
件名:楽天ペイアプリご利用内容確認メールのタイトルを入力

ラベル:ラベルを付けるにチェック、①で作成した楽天ペイ利用のラベルを選択
一致するスレッドにもフィルタを適用するにチェック

これで楽天ペイ利用のメールの振り分けができたと思います。

Googleスプレッドシートの作成

振り分けたメールをスプレッドシートに抽出します。

④スプレッドシートを新規作成します。

ファイル名:楽天ペイアプリご利用内容確認メール(任意の名前でOK)
シート名:シート1の名前を「抽出」に変更(任意ですがAppScript内で使用します)

⑤1行目にのセルそれぞれにタイトルを入力します。

ABCDEF
1日付差出人件名内容IDURL

GASの作成

⑥ツール→スクリプトエディタの順にクリックしてGASのスクリプトエディタを起動して、次のソースコードを入力します。

var mySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('抽出');  //シート名

function searchContactMail() {
  
  var mylabel = GmailApp.getUserLabelByName('GAS処理済');  //①で作成したラベル名
  if (!mylabel) {
    mylabel = GmailApp.createLabel('GAS処理済');  //①で作成したラベル名
  }

  var strTrams = 'label:楽天ペイ利用 -label:gsa処理済';  //①で作成したラベル名
  var myThreads = GmailApp.search(strTrams, 0, 100);  // 上記の条件で最大100件のスレッドを取得

  var ValMsgs = [];  
  for (var i = 0; i < myThreads.length; i++) {
    var msgs = myThreads[i].getMessages();  

    for (var j = 0; j < msgs.length; j++) {
      var msg = msgs[j];  
      var msid = msg.getId();  

      var date = msg.getDate();  
      var from = msg.getFrom();  
      var subj = msg.getSubject();  
      var body = msg.getBody().slice(0, 10000);  // メッセージ本文の最初の10000文字を取得
      var perm = myThreads[i].getPermalink();  


      ValMsgs.push([date, from, subj, body, msid, perm]);
    }

    myThreads[i].addLabel(mylabel);
  }

  if (ValMsgs.length > 0) {
    var lastRow = mySheet.getLastRow();  
    mySheet.getRange(lastRow + 1, 1, ValMsgs.length, 6).setValues(ValMsgs);  
  }
}

⑦実行する関数が「searchContactMail」であることを確認して実行します。

シートにメールから取得した情報が出力されます。
100件以上ある場合は実行をさらに続けます。

*GAS初回実行時には、Googleアカウントへのアクセス許可を求められますので承認します。

必要なデータを抽出

必要な情報を別のシートに抜き出します。
今回は日付・ご利用店名またはお支払い先・決済総額を抽出します。

⑧抽出シートとは別にしたいので、シートを追加します。

⑨1行目にのセルそれぞれにタイトルを入力します。

ABC
1日付ご利用店名決済総額

⑩2行目のセルに数式を入力します。

A2 *元データは年月日時間まで入っていますが年月日のみの表示に整えます

=ARRAYFORMULA(IF('抽出'!D2:D<>"", REGEXREPLACE(REGEXEXTRACT('抽出'!D2:D, "\d{4}[/年-]\d{1,2}[/月-]\d{1,2}"), "[年-]", "/"), ""))

B2

=ARRAYFORMULA(IF('抽出'!D2:D<>"", IFERROR(TRIM(REGEXEXTRACT('抽出'!D2:D, "(?:ご利用店舗|お支払い先)\s*\s*]*>([^<]*)")), ""), ""))

C2

=ARRAYFORMULA(IF('抽出'!D2:D<>"", VALUE(SUBSTITUTE(SUBSTITUTE(TRIM(REGEXEXTRACT('抽出'!D2:D, "決済総額\s*\s*]*>([^<]*)")), "¥", ""), ",", "")), ""))

A〜C列に出力されるかと思います。

これを会計ソフトや家計簿にインポートして活用しました。

◇ ◇ ◇

時短につながります

◇ ◇ ◇