2024/03/17

「ひかる」に、他の家計簿アプリからのデータを持ち込むためのデータ変換方法

前回の記事

 今回は、前回とは逆に、他の家計簿アプリの取引データを「ひかる」に持ち込む方法を解説します。その前に、ちょっとした準備が必要です。

【2024/04/07】カテゴリーリストのファイル名を誤って記載しておりましたのを修正しました。大変申し訳ございません。

1.「ひかる」の項目名から禁則文字を取り除く

 「ひかる」のデフォルトの項目名には、全角の読点"、"が含まれているものがあり、MFFマクロACF機能を使用して「ひかる」の項目名を変換しようとした際に、このような記号が障害になります(MFFマクロがエラーで止まる)。これはExcelがある処理を行う際にこのような記号を受け付けないためです。詳しくは、Excelの名前付き範囲に使用できない名前と記号の一覧 | へるぱそねっと (helpaso.net)をご覧下さい。

 そこで、↓のように、記号を含んだ項目名を修正する必要があります。

「ひかる」の「交通、通信」を「交通・通信」に変更する

2.家計簿出納簿ひかるカテゴリーリスト.csvを作成する

 ここで申し上げておきますと、「ひかる」は、詳細データ(当Blogでいう取引データのことを「ひかる」ではこう呼びます)を取り込む際、「ひかる」側に定義されていない項目名がデータ内に出現した場合は、新規の項目を設定するダイアログを出してきます。ところが、このダイアログには「どんな新規項目名がファイルに記述されているのかを表示してくれない」という大問題がありまして…取りあえずテキトーな項目名を設定しておいて、後で修正する、といった対応をしなければなりません。

 すなわち、「ひかる」に詳細データを取り込もうとするには、データに含まれる項目名(費目および口座名)を「ひかる」に定義済のものに完全に整えておく必要があります。よって、MFFマクロのACF機能を活用しなければならず、その準備として"家計簿出納簿ひかるカテゴリーリスト.csv"を作成します(ファイル名は一字一句このとおりにして下さい。半角カンマは入りません!)。その中身の例を↓に示します。

家計簿出納簿ひかるカテゴリーリスト.csv の例

 ↑で注目していただきたいのは、まず、A2セルの"現金”。これは必ず設定してください(「ひかる」は現金だけは常時存在しているため)

 次に、A5セルの"■52この筋カード"です。「ひかる」側で"52この筋カード"という「借入」を設定している場合、ACFのカテゴリーリストではその先頭に"■"を付けて下さい。ただし、「ひかる」側では付けてはいけません。

 この"■"は、MFFマクロに「"52この筋カード"というのは借入(負債)だ」と知らせるためのフラグです。MFFマクロは、このフラグをもって「"■52この筋カード"に対する取引種別は"借入"か"借入返済"だ」と判断し、「ひかる」側で解釈できる詳細データを生成します。そのためには、MFF形式データに含まれる"52この筋カード"をACFで一時的に"■52この筋カード"に変換しなければなりません。これにより、MFFマクロの動作を制御するわけです。

 また、↑B12・M1セルの"交通・通信"という項目名ですが…これは↑↑の画面で"交通、通信"から変更したものです。"、”がExcelの動作に支障するためです。

 さらに、↑B14~B16およびO1~Q1セルの"所得"・"利子配当"・"雑収入"は収入の項目名で、2024/03/09 2024年にPC家計簿ソフト「ひかる」を使ってみる人のための解説で申し上げたとおり、「ひかる」側では先頭に"□"を付けて定義していただきたいのですが、↑のカテゴリーリストでは"□"を付ける必要はありません。MFFマクロは、MFF形式データから「ひかる」に取り込ませるデータの項目名が支出なのか判別できるので、"□"はMFFマクロ側で付けます。

2.MFF形式データを用意する

 ここで、「ひかる」にインポートするMFF形式データを用意します↓。実はこのデータは前回の記事で「ひかる」からエクスポートして変換したもので、日付だけ3月を2月にしています。もちろん、他の家計簿アプリから取り出したデータをMFF形式に変換した物でもOKですし、むしろそれが目的なのですが、ここではちょっと手を抜きました(汗)。

 よって、前述した「交通、通信」というExcel的に問題がある項目名もそのままです(「ひかる」側の項目名を修正する前に出力したデータだから)。また、収入取引の費目甲欄には"□"が付いておらず、後でMFFマクロが「ひかる」にインポートするデータファイルを生成する際に付けます。

ひかるインポート解説用MFFデータ

3.ACFでデータを整える

 さて、このワークシートのD1セルのプルダウンメニューを「家計簿出納簿ひかる」にセットし、D1セルにセルカーソルを置いた状態でMFFマクロのACF機能を動作させます。

MFF形式データにACFを適用する

 ↑の④のダイアログで【OK】を叩いた後、前述の2.で作成した"家計簿出納簿ひかるカテゴリーリスト.csv"を格納しているフォルダを指定します。その後、初めてこの手順を実行する際には「家計簿出納簿ひかる変換リストが無いぞ」と警告を出してきますが、初回ですから当然でありまして、【OK】を叩けば↓のような画面になります。

ACF機能の起動動作を行った直後のExcel画面

 黄色になっているセルは、"家計簿出納簿ひかるカテゴリーリスト.csv"で定義した「ひかる」の項目名と、MFF形式データが合致していませんので、ACFが設定したプルダウンメニューで正しい項目名を選択していきます。

 まず、L4セルは、B4セルの"交通、通信"が、すでに「ひかる」側で"交通・通信"に変更されている(正確には、それを反映してカテゴリーリストを作ってある)ため不整合になっているのを修正し、その後、N4セルのプルダウンメニューを"電話料金"に直します(この画面例は省略します)

 次にD5セルの"52この筋カード"は、「ひかる」側でも"52この筋カード"というクレジットカードを設定してあるのですが、「ひかる」にインポート可能なデータを生成する際に、これが「ひかる」の口座の名前を示しているのか、「借入」の名前を示しているのか(このケースでは後者ですね)を「MFFマクロ」に認識させるため、先のカテゴリーリストでは"■52この筋カード"と、先頭に"■"を付けましたよね? そのため、MFF形式データとカテゴリーリストで不整合となっているわけです。ここでは、プルダウンメニューで"■52この筋カード"を選択しますが、この操作は"52この筋カード"が入っているどこか1箇所のセルでのみ行って下さい。

ACFを使って費目とカテゴリーを修正する

 修正作業が終わり、セルカーソルをA1に合わせた状態でACF機能を動作させると↓、ACFは「最終動作」を行います。

ACF機能の最終動作を行う

 ↓の画面で、"52この筋カード"のままになっていたセルが全て"■52この筋カード"に置き変わり、B1セルが"交通・通信"に変わっていることをご確認下さい。

4.MFFマクロでファイル入力用詳細データを出力する

 A1セルが"MFF”に戻ったら、D1セル("家計簿出納簿ひかる"から変更できなくなっているはずです)にセルカーソルを合わせて、MFFマクロを動作させます。「ひかる」にインポートするテキストファイルの保存先を尋ねるダイアログが出現します。

ACF機能から抜けた状態でMFFマクロを動作させる

 「ひかる」にインポート可能なデータファイルは、エンコードはShift-JIS、改行コードはCR+LF、データ区切り文字はTABです(つまり、本来はtsvファイルなのだが、拡張子は.txtにすることが求められている)。よって、Excelでフツーに開くことは出来ず、テキストファイルウィザードかPowerQueryを使って読み込みます(MFFマクロのファイル読み込み機能でも読み込めません。その意味も無いでしょうから)と↓のようになります。

「ひかる」にインポートするテキストファイルの中身

 ↑クレジットカードの名称たる"52この筋カード"は、MFFマクロが"項目名"欄に入る取引種別を"借入"または"借入返済"としたのに伴い、先頭の"■"が削除されております。また、↑7~11行目の収入取引では、「ひかる」を運用する際のお約束に従ってMFFマクロが項目名の先頭に"□"を付けています。さらに、MFF形式データ↑↑の9~18行にある振替取引は、振替元A→振替先Bの振替支出取引と、振替先B←振替元Aの振替収入取引がダブっておりましたが、これもMFFマクロが適切にダブリを解消させています。

5.「ひかる」に詳細データをファイル入力する

 このデータを、「ひかる」にインポート(「ひかる」の用語では"詳細データのファイル入力")させますと↓、読み込みに成功した場合は「NN個のデータが読み込まれました」(NN個はテキストファイルのデータの行数)というダイアログが表示されます(画面例は省略)

「ひかる」に詳細データのファイルを入力する

 今回、「ひかる」に取り込んだデータは2024年2月分のものでしたので、「ひかる」の2月分の出納帳画面で確認すると↓のようになります。どうやら正しく取り込めていますね。

「ひかる」にインポートした詳細データを出納帳画面で確認する

6.MFF形式→「ひかる」  データ変換処理の概要

 今回取り上げた、MFF形式→「ひかる」のデータ変換についても、前回記事の「ひかる」→MFF形式 のデータ変換と同様の難しさがあります。「ひかる」は支出・収入・振替のそれぞれの取引について、「現金」・「口座」・「借入」のそれぞれ取引の主体となる資産種別ごとに記帳の仕方が異なります。よって、MFF形式からのデータ変換においても、それぞれのケースに応じて処理を記述しなければなりません。コイツをプログラムとして実装するには鬼のような手間と時間を要しました。

(1)支出取引

 「ひかる」は、現金からの支出取引は1行のみで表現しますので、データ変換の際も、口座名が"現金"である場合に限ってそのようにデータを生成します。

MFF2Hikaru動作チャート支出取引

(2)収入取引

 支出取引と同様に、現金への収入取引も1行のみで出力します。

(3)振替取引

 「現金」を振替元あるいは振替先にする振替取引は、やはり1行のみのデータを生成します。

MFF2Hikaru動作チャート振替取引

_いや~、「ひかる」関係の開発はかなり疲れました。コーディングそのものはどうってことは無いのですが、「ひかる」の動作を理解し、「ひかる」に特有の仕様にどうやって対応するか、という方針策定が大変なんです。結局、ユーザー各位にお願いごとばかりすることになってしまいました。

 次の「ひかる」関係の記事はこちらです→

注目の記事

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

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

最近の人気トップ3