2020/10/05

「貯まる家計簿」に他の家計簿アプリのデータを変換して一括登録する(前篇)

_今回は「貯まる家計簿」連載4回目(前回の記事はこちら)として、MFF形式のデータを一括登録(「貯まる家計簿」の用語です)する方法をご紹介します。

1.「貯まる家計簿」のデータ一括登録機能とは

_「貯まる家計簿」には、Dropboxの"\アプリ\貯まる家計簿"フォルダに保存したCSVファイルをアプリ側で取り込む機能(一括登録機能)があります。そのCSVファイルの雛形となるExcelファイルがテンプレートとして公開されています。ただし、その中身は↓のように、食費に収入額が入っているわ、投資という費目が収入・支出の両方に入っているわで、サンプルとしてはメチャクチャです。これをテスト用にそのまま一括登録したらエラいことになりますので止めたほうがよろしいでしょう。

_MFFマクロは、MFF形式のデータを、このテンプレートと同じ形式のCSVファイルに変換して出力します。他の家計簿アプリでは、データを取り込ませるためにどのような形式にしなければならないのか逐一自分で探求しなければなりませんでしたが、「貯まる家計簿」では標準機能として実装されているのが非常に有り難いところです(少なくとも最初はそう思いました)

貯まる家計簿のデータ一括入力用テンプレート

2.「貯まる家計簿」への一括登録用データ変換処理の概要

_今回は操作方法に先んじてMFFマクロの動作について解説します。

(1)収入・支出取引

_MFF形式の収入・支出データを「貯まる家計簿」用に変換する際の処理は↓のようになります。「貯まる家計簿」には品名・店名欄が無いので、MFF形式の取引先(店名)・内容・メモ欄を例の (品名)(@店名)(※メモ) のMFF書式で「貯まる家計簿」のメモ欄(アプリ上では備考欄)に入れるようにしています。

MFF2TKBの動作(支出・収入データの場合)

(2)振替取引

_「貯まる家計簿」は、振替取引(アプリの用語では「資産移動」)の場合に "資産A→資産B"(資産Aからの振替支出)と"資産B←資産A"(資産Bへの振替収入)の2つの取引データが発生することは前回までに解説しました。では、振替取引を一括登録させる場合も、この2つの取引データを取り込ませれば良いのか…というと、実際にそのようにしても、厄介なことに両者の取引を紐付ける処理が行われないのです。

_つまり、

  1. "資産A→資産B"
  2. "資産B←資産A"

_の2つの取引が取り込まれても、手入力したデータのように「片方を削除すれば他方も削除される」という動作はしません。さらに、これらの取引データをアプリ上でいじって【保存】する操作を行うと、

  1. "資産A→資産B"
  2. "資産B←資産A"
  3. "資産A→資産B"
  4. "資産B←資産A"

_のように、何と「振替を2回行った」という取引データに化けてしまいます。

_では、なぜ「貯まる家計簿」はこういう動作をするのか…という点ですが、このアプリの一括登録用のデータ形式には振替取引の際の移動先を指定する欄が無いためです。すなわち、「貯まる家計簿」は振替取引を一括登録で取り込ませても、振替の相手先は実はテキトーな資産が勝手に指定されるようになっていて、それを後でユーザーがアプリ上でいちいち修正して【保存】させなければなりません(当Blogで取り上げている他の家計簿アプリにもいくつかこういうのがありましたよね? マイクロソフトマネーとか、てきぱき家計簿マムとか…)

_そこで、MFFマクロでは、この凄まじく厄介な仕様に対応すべく、振替取引の反対取引はあえて出力させないようにしました。そして、その後にアプリ上でユーザーがその取引を修正して【保存】することで反対取引を生成させます。ただし、その際に振替の相手先を指定し直さなければならない(このあたりのアプリ上での操作については次回に述べます)ので、その際に相手先の手掛かりとなるように、備考欄に"★(資産A)→(資産B)#"という文字列を入れています。

MFF2TKBの動作(振替データの場合)

3.「貯まる家計簿」への一括登録の前にACF機能は必須です

_ところで、一般論として、家計簿アプリにデータを取り込ませる際に「アプリに未登録の資産や費目が含まれているデータはどのように取り扱われるのか」という点が非常に重要なわけですが…試してみたところ、「貯まる家計簿」は「新規に資産・費目を作成する旨をユーザーに通知してくるが、データを全てそのようにして取り込むか/全てキャンセルするかの二択になる」という動作をします(別の記事で述べます)。

_Zaimなんぞは、こういう場面ではユーザーに全く断り無く勝手に新規口座や新規費目を作成して取り込んでしまいます。それを考えればこれでもはるかに上等な動作ではありますが…この二択はなかなか辛い。というわけで、「貯まる家計簿」へのデータの取り込みには、事前にMFFマクロACF機能で口座・費目を変換しておくことが事実上必須となります。

_ACFを使用するにはカテゴリーリストが必要、ということで…"貯まる家計簿カテゴリーリスト.csv"の中身の例を↓に示します。なお、「貯まる家計簿」のスマホアプリ側では、前々回2020/09/24「「貯まる家計簿」のクレジットカード・デビットカードに関する動作を研究する」の記事のように口座(資産)や費目を設定してあるものとします。よって、クレジットカードの引落しを記帳する費目は「クレジット引落し」、デビットカードについては同「デビット引落し」と設定してある前提です。

貯まる家計簿カテゴリーリスト.csvの中身

_では、早速↓のようなMFF形式の家計簿データを例に、ACF機能を適用してみましょう。

MFF形式データに対してACFを起動動作させる

_"貯まる家計簿カテゴリーリスト.csv"が有るフォルダを指定すると(状況によってはそのダイアログが出てこない場合もあります)、ACFの起動動作が完了します↓。費目に関してはすでにL列・M列ともに全て水色になっているので変換ルールを指定する必要はありませんが、口座名は全て黄色であり、このまま「貯まる家計簿」に一括登録しようものなら全て新規口座にされてしまいます。

MFF形式データに対してACFを起動動作させた

_そこで黄色のセルに設定されたプルダウンメニューを操作して、口座名の変換ルールを指定していきます↓。

ACFでMFF形式データの口座名を変換する

_ACF機能を何度か反復動作させ、全ての口座名が水色になったら、ACFを終了動作させます↓。

ACFの終了動作

4.「貯まる家計簿」一括登録用CSVファイルを出力する

_ACF機能から抜けたところで、D1セルが「貯まる家計簿」のままになっていることを確認し、同セルにセルカーソルを合わせた状態でMFFマクロを動作させます。貯まる家計簿に一括登録するためのCSVファイルをどこに保存するか聞いてきますので、"C:\USERS\(ユーザー名)\Dropbox\アプリ\貯まる家計簿\"(←環境により異なる場合があります)を指定するとそのフォルダにCSVファイルが保存されます。PC上でDropboxのアプリが動作中であれば、そのままDropboxのサーバーへCSVファイルが書き込まれます。

口座名を整えてからMFFマクロを動作させる

_なお、そのCSVファイルの中身は↓のようになります。前述のように変換処理が実行されていることが判ります。A1セルは"-日付"が入るのですが、先頭のマイナス記号をExcelが式として解釈しようとして失敗しエラーになっています。これは実用上は問題ありませんので気にしないで下さい。

貯まる家計簿一括登録用のCSVファイルの中身

次回は、このデータを「貯まる家計簿」アプリに一括登録する方法を解説します→

注目の記事

家計簿アプリとデータをやりとりする際のファイル形式のまとめ

_今回の主題は…家計簿アプリとデータをやりとりするときに使用するファイルの形式について、です。筆者がこれまで MFFマクロ に対応させてきた家計簿アプリは27種類(Money通帳とあっと家計簿は別カウント)。まず、家計簿アプリからエクスポートする方向では↓のようになります。...

最近の人気トップ3