ラベル GnuCash の投稿を表示しています。 すべての投稿を表示
ラベル GnuCash の投稿を表示しています。 すべての投稿を表示

2024/03/29

GnuCashV5シリーズからエクスポートした取引データに対応したMFFマクロV2.54登場

 2024/03/23 GnuCashからエクスポートしたデータをMFF形式に変換する機能を修正中 で予告しましたように、GnuCashは、V5.0以降で、エクスポートした取引データの形式が変更されたようで、従来のMFFマクロではMFF形式へのデータ変換がうまくできなくなっておりました。そこで、今回MFFマクロをV2.54に更新してこの問題に対処しました。

1.GnuCashの仕様変更とは?

 GnuCashV5シリーズからの取引データのエクスポートは、V4シリーズと同じで、2021/11/17 GnuCashからエクスポートしたデータをMFF形式に変換する(前篇)でご紹介した方法で行えます。

 GnuCashV4シリーズからエクスポートした取引データの例を↓に示します。

GnuCashV4から出力したCSVファイル

 V4シリーズのGnuCashは、通常、複式簿記の貸方・借方に相当する2行で1データを構成します(貸方・借方の順序は決まっていない)。また「スプリット取引」(1回の取引で複数の貸方・借方を記帳する、いわゆる複合仕訳)では、取引の1行目に相当する「親取引」にのみ日付~アクションの8列に情報が入り、2行目以降(当Blogでは便宜的に「子取引」と呼びます)はこの8列は空欄となります。

 このデータ構造は、データ変換のうえでは結構面倒臭そうに思えますが、「取引データの境界がはっきりする」というメリットがあるのです。

2024/03/23

GnuCashからエクスポートしたデータをMFF形式に変換する機能を修正中

 本日、GnuCashにデータを投入する作業をしていた際に気が付いたのですが、GnuCashはどうやらV5.0に更新された時点で、取引データをエクスポートする際のデータ形式が変更されているようです。

 現在、MFFマクロの修正に着手しています。データの入れ方の基本方針が覆っており、相当な難物ですので更新版公開までかなりお待ちいただくことになると思います。ご容赦ありたく。

 なお、MFF形式→GnuCashへのインポートは現バージョンV2.53のMFFマクロで可能です。

2023/07/01

GnuCashにV5シリーズが登場

_詳しくは「窓の杜」の2023/04/03の記事「フリーの会計ソフト「GnuCash 5.0」が公開 ~約3年ぶりのメジャーアップデート」を参照してください(丸投げだわ、3ヶ月も前の情報だわ…)

_株式投資に関する入力機能が強化されたのが今回のアップデートの目玉ですが、他に、勘定科目毎に上限値・下限値を設定し、残高が上限を上回るか下限を下回った場合に警告マークを出す「Balance Limit機能」が追加されています。

_上限値・下限値の設定は↓のように行います。

GnuCashに5.0シリーズが登場

_【勘定科目】タブの見出し行の右端にある▼を押して、カラム・メニューの中からBalance Limitを選択すると、↓のように「L」という一見意味の分からないカラム・タイトルが出現します。対象の勘定科目の残高が下限を下回ると↓のような記号が表示されます。上限を上回った場合は逆向きの記号です。

GnuCashにBalanceLimit機能が登場

_筆者としては…今回の記事を作成するにあたって、GnuCashのカラム・メニューを表示する方法が判ったことが最大の収穫でした。今まで全然気づいていなかった…(泣)。

【2024/03/29追記】:GnuCashV5では、取引データをエクスポートした際のCSVファイルの形式が変更されています。それについては 2024/03/29 GnuCashV5シリーズからエクスポートした取引データに対応したMFFマクロV2.54登場 を参照されたく。

2022/05/21

「家計簿アプリのデータインポート/エクスポート機能の性能比較」をさらに更新しました

 【追記】本記事を更新した記事は 2023/07/14 第4版 家計簿アプリのデータインポート/エクスポート機能の性能比較をご参照ください。


_当Blogの主題は家計簿アプリ間でのデータ変換の手段を提供することにあるわけですが、肝心な家計簿アプリ側の性能評価をしなければ、ユーザーの皆さんの家計簿アプリの選定の参考になりません。そこで、前回の 2021/08/22 「家計簿アプリのデータインポート/エクスポート機能の性能比較」を更新しました の続編(第三弾)として、筆者の独断と偏見で評価した結果を公開します。今回は7つの家計簿アプリの評価を追加し、OsidOriの評価の見直しを行いました。

_なお、↓の表の評点は、インポート/エクスポートの際にユーザーが受ける制約や手間といった「障壁」を点数化しており、「低い点数ほど好ましい」ものとなっています。

家計簿アプリ別のデータインポート・エクスポート機能の性能比較(Ver3)

2022/01/10

マイクロソフトマネーの複合仕訳データを他の家計簿アプリ向けに変換する方法

_先日、ある読者の方から、このようなご指摘をいただきました。

_2020/07/28「マイクロソフトマネーの入力UIは残念ながらやはり古いです」の記事で「レシート入力したデータはCSVファイルに出力すると取引の総額しか入らないので使わない方がいい」と書いているけど、実はマイクロソフトマネーの「取引の一覧」レポート機能のユーザー設定を変更すれば、レシート入力されたデータの内訳も出力できるよ

_驚いて、大急ぎでマイクロソフトマネーを起動して確認したところ…確かにそのようになっておりました。全くもって筆者の思い込みと確認不足であり、先の記事では間違った情報を流布させてしまいました。大変申し訳ございません。また、ご指摘いただいた方にも感謝申し上げます。

_当該の記事に追記させていただくとともに、MFFマクロをV2.29に更新して、マイクロソフトマネーのレシート入力機能および給与明細入力機能(以下、これらを「複合仕訳機能」と呼ぶことにします)に対応させましたので、今回の記事はその内容をご報告いたします。

1.マイクロソフトマネーの複合仕訳機能について

(1)レシート入力機能

_マイクロソフトマネーは、「複数費目やレシートの入力」という名称で複合仕訳のデータを入力できます。↓の画面は支払データを入力しており、これに値引きやポイント払い等の収入の要素を加えるのであれば、収入側の費目を指定してマイナスの金額を入力してください。預入データに支払の要素を加える場合も同様です。

マイクロソフトマネーのレシート入力機能でデータを入力したところ

2021/12/04

GnuCashのグラフ機能の紹介を忘れてました

_GnuCashとのデータ変換に関する連載は 2021/11/24 家計簿データをMFF形式から変換してGnuCashへインポートする(後篇)で一応終わりましたが、グラフ機能についてご紹介するのを失念しておりました。そもそも筆者がGnuCashへのデータインポートにこだわったのは今回の記事の元ネタになるデータを投入するためだったのに、MFFマクロV2.27を公開して満足してしまっていたようです…

_今回は、 2020/07/26の記事で触れた、マイクロソフトマネーと同レベルのグラフを描くことを目標にします。長期的な支出の傾向を掴むための↓のようなロングスパンでの積上げ棒グラフです。

マイクロソフトマネーの費目別支出額推移のグラフ例

_GnuCashで↑のようなグラフを表示させるには、↓のように操作します。しかし…2021年になってからの3ヶ月分しか表示されず(これは筆者が2021年度のデータを投入していないからです)、グラフの項目も8つしかありません。あれ~こんなグラフしか表示できないのか~? と最初はかなりがっくりきました。

GnuCashで「費用チャート」を表示させても最初はこんなグラフにしかならない

2021/11/24

家計簿データをMFF形式から変換してGnuCashへインポートする(後篇)

←前回の記事:2021/11/23 家計簿データをMFF形式から変換してGnuCashへインポートする(前篇)

_今回は、前回に出力したCSVファイルをGnuCashに取り込みます。

3.GnuCashへのインポートも簡単ではない

_データインポート機能には↓のようにアクセスします。

GnuCashのインポート機能へのアクセス

2021/11/23

MFF形式の家計簿データを変換してGnuCashへインポートする(前篇)

←前回の記事:2021/11/22 ついにGnuCashに対応 MFFマクロV2.27出現

_今回は、MFFマクロ(V2.27以降)を使用して、MFF形式のデータをGnuCashにインポートする手順をご紹介します。記事にすれば割とあっさり終わりますが、この機能を実装するには大変な手間がかかりました。

_しかも、今回の記事を執筆中に、MicrosoftがOfficeソフトを更新して画面デザインを変えやがったため、画面例のキャプチャを全てやり直しする羽目になりました。ここのところ筆者の身にはロクなことが起きません…(泣)。

_なお、Excelの更新によって、クイックアクセスツールバーが標準では非表示になりました。これは非常に困るので、Excelで【ファイル】タブ>【ホーム】メニュー>【その他…】サブメニュー>【オプション】を選択し、Excelのオプションダイアログ内の【クイック アクセス ツール バー】設定画面で□クイック アクセス ツール バーを表示する のチェックBOXをONにして、MFFマクロ動作用のアイコンを表示するように設定してください。

1.MFF形式データをGnuCashにインポートできる形にする

_サンプルのMFF形式データは、実はGnuCashからのエクスポートのテストに使用したものを利用します↓。セルに色をつけているのは説明を判り易くするためで、本来のデータにはありません。各色はそれぞれ

  • 2021/10/22の緑色系のデータ:給与明細
  • 2021/10/26の黄色系のデータ:クレジットカードによる買い物
  • 2021/10/28の青色系のデータ:お土産を現金・Suica併用で買った
_という取引を示しており、いずれも「明細分離用」という仮想の口座を設定して疑似的に複合仕訳を実現しているものです(家計簿アプリを活用するうえでの典型的な手法ですね)。よって、これらは当然スプリット取引としてGnuCashにインポートさせたいところです。

_そこで、MFFマクロV2.27では、MFF形式のL列を「スプリットフラグ」というデータ列として使用します(L列は、本来はMFFマクロのACF機能用ですが、GnuCashはインポートの際に勘定科目の対応関係を設定する機能があるのでACFを使う必要はありません)。スプリットフラグとは、MFF形式の複数のデータがスプリット取引を構成していることを明示するための自然数で、ユーザーが以下のように入力します。

  • 同じ日付で、同じ口座名の複数のデータに入力する。↓の2021/10/28の例のように、振替取引が複数含まれていても構わない。
  • 支出欄・収入欄の総額がそれぞれ同じになるようにする。↓の2021/10/26の例では支出・収入とも計1133円。
  • 親取引(これは1つだけ)となるデータ行に1を、子取引となるデータ行(これは複数)に2以上の自然数を入れる。子取引全てを2と指定しても、2以上の連番としてもかまわない。また、同じ日に複数のスプリット取引が発生する場合は、100の位を異なるものにする(101を親として、子を102~199とする。200台・300台…でも同様)
  • 親取引は、対象となる複数の取引の中でそれを代表するものを指定する。例えば↓のデータ例では2021/10/22の給与明細であれば、「明細分離用」口座から「あの筋銀行」口座に300,000円が振り込まれた体になっている取引が該当する。
  • スプリット取引に含まれる振替取引に対しては、反対取引(↓の画面でグレーに塗った行)の方にはスプリットフラグは入れないこと。また、そのような反対取引はデータ変換の処理対象外となる。反対取引が無いデータであればそのままで良い。
  • スプリット取引にせず、通常の取引データとしてインポートさせる場合はスプリットフラグ欄には何も入れない。
_↓の画面例の①のようにスプリットフラグを入力し、②D1セルのプルダウンメニューでGnuCashと設定し、③セルカーソルをD1セルに合わせた状態でMFFマクロを動作させます。

_なお、マクロを動作させる時点では、オートフィルタの絞り込み機能は使用しないようにしてください(オートフィルタ機能を解除しろということではなく、絞り込みをするな、という意味です。絞り込んでいる場合はMFFマクロが強制的に解除します)。これは、MFFマクロが処理の途上でMFF形式データを(日付とスプリットフラグをキーにして)昇順ソートする段階があるのですが、その際に絞り込みをかけているとExcelが「表示中の行だけでソートする」という動作をして、スプリット取引のデータ行が不連続になる場合があるためです。

GnuCashインポートテスト用MFF形式データ

2021/11/22

ついにGnuCashに対応 MFFマクロV2.27出現

_お待たせしました。前回記事の予告のように、鬼のように大変な思いをしてMFFマクロをGnuCashとのインポート/エクスポートのデータ変換に対応させることができました。バージョンナンバーも、現行のV2.23からV2.25にする予定が、さらにV2.27にまで飛びました。その理由は、プログラムをGnuCashからのエクスポート(GnuCash2MFF)で1回、GnuCashへのインポート(MFF2GnuCash)で2回、全面的に書き直したためです。

MFFマクロV2.27概念図

_当Blogでは、MFFマクロを公開後、解説記事を執筆中に改良点や不具合を発見してさらにバージョンアップすることがよくあります。GnuCashへの対応については絶対にそうなることが判っていたので、プログラム公開を延ばしておりました。…が、当該サブルーチンだけでなく、周辺のサブルーチンまで改修しなければならなくなったのは誤算でした。

_一連のバージョンアップ作業の中で、MFFマクロの大きな問題点も見えてまいりました。今回のGnuCashへの対応の中で最も足を引っ張ったのが、振替取引のデータに対して「反対取引をでっちあげる」というMFF形式の仕様です。

_もともと、この仕様は、マイクロソフトマネーにデータをOFXでインポートする際「1口座ずつしかインポートできず、振替取引を認識させることもできない」という制約に対応し、MFF形式の家計簿データを「口座名」で絞り込んでOFXファイルを出力する、という運用を想定したものです。つまり、口座A→口座Bの振替取引に対し、口座Aからの振替支出のデータはあっても、口座Bへの振替収入のデータは無い(口座Bの出納を正しく認識できない)…という事態を回避するための仕組みです。

_ところが、GnuCashは複式簿記を強く意識した造りになっているため、「口座A→口座B」の取引データと「口座B←口座A」の取引データの両方があると…データ変換処理の中で「口座Bを借方、口座Aを貸方とするX円の資金移動」と「口座Aを借方、口座Bを貸方とするマイナスX円の資金移動」という二つの表現が両立してしまい、特にスプリット取引のように「主軸とする口座名をデータから特定する」という処理を記述する際に大混乱を起こすのです。GnuCashが負の金額を取り扱える仕様になっているのが事態をさらに厄介にする…。このあたりの頭の整理のためにサブルーチンを全面的に書き直しする羽目になった、というわけです。

_幸いであったのは、直前に、複式簿記を基本設計としたDARUMA家計簿への対応を経験していたことでした(例えば2021/07/19 DARUMA家計簿からのデータエクスポートの方法も新しくなりました。これが無かったら労苦はさらにキツいものになったでしょう。

_また、MFF形式のもう一つの難点が「取引先欄」が収入・支出取引と振替取引でデータの意味が異なる、という仕様です。これも、毎度毎度の処理において、取引データがどちらの取引を意味しているのかを判断しなければならず、プログラムが非常に冗長になる原因になっています。

_このように、MFFマクロも次の大幅改良をそろそろ考えなければならないようです。いつになるかは判りませんが…

次回はいよいよGnuCashにデータをインポートします→

2021/11/19

GnuCashからエクスポートしたデータをMFF形式に変換する(後篇)

 ←前回の記事:GnuCashからエクスポートしたデータをMFF形式に変換する(前篇)

_今回は前回の続きで、GnuCashからエクスポートしたデータをExcelに読み込ませるところから始まります。

【2024/03/29追記】:この記事はGnuCashV4シリーズに対応しており、GnuCashV5シリーズでは、取引データをエクスポートした際のCSVファイルの形式が変更されています。詳しくは2024/03/29 GnuCashV5シリーズからエクスポートした取引データに対応したMFFマクロV2.54登場 を参照して下さい。

2.CSVファイルをExcelへ読み込む

_Excelを起動し、空のワークシート上でMFFマクロを動作させ、出現したダイアログで「GnuCashからエクスポートされたCSVファイル」を指定して、ワークシートに読み込ませます(ファイル名にGnuまたはGNUが含まれていることでGnuCash由来のファイルであると判定します)。このCSVファイルはUTF-8でエンコードされている(BOM無し、改行コードはCR+LF)ので、普通にExcelで開くと文字化けします。

MFFマクロでGnuCashからエクスポートしたcsvファイルを読み込む

2021/11/17

GnuCashからエクスポートしたデータをMFF形式に変換する(前篇)

 ←前回の記事:2021/11/10  GnuCashにデータを入力する方法(スプリット取引篇)

_GnuCash関連の連載もいよいよ本題に入ります(え、今までは本題じゃなかったの?という突っ込みはさておき)。GnuCashからエクスポートしたデータを、MFFマクロMFF形式に変換する方法を解説します。

1.GnuCashからのエクスポート

_の2回の記事で、GnuCashに取引データを入力した結果、各勘定科目の残高は↓のようになっているはずです。

これまでの例題を入力した結果

_ ここから、取引データをCSVファイルとしてエクスポートします。コマンドへのアクセスは↓のとおり。

取引をCSVにエクスポート_を選択する

2021/11/10

GnuCashにデータを入力する方法(スプリット取引篇)

 ←前回の記事:2021/11/09 GnuCashにデータを入力する方法(通常取引篇)

_前回は、借方・貸方が1対1で対応する「通常取引」の入力方法を解説しました。しかし、GnuCashを使いこなすなら、1つの取引で複数の借方と複数の貸方が対応する「複合仕訳」を実現する「スプリット取引」機能をマスターすることが欠かせません。今回はその入力方法を解説します。

1.家計簿アプリの複合仕訳機能の状況について

_複合仕訳の入力ができる家計簿アプリは、筆者の知る限りではDr.WalletMoneyProZaimマイクロソフトマネーの4つがありますが、それぞれ、できること、できないことがあります。そこでそれらをまとめたのが↓の表になります。

_【2022/01/10追記】:マイクロソフトマネーのエクスポート機能についての認識に誤りがありましたので修正しました。

複合仕訳が可能な家計簿アプリの性能一覧

_このように、複合仕訳機能に関して、4つのアプリはいずれも完璧とはいきません。最も優れているのはZaimですが、それとて支出でしか複数の費目を扱えませんので、給与明細を複合仕訳で入力するのは(ダミー口座を活用しなければ)不可能です。

_これに対し、GnuCashは支出・収入に跨がった取引を記帳可能で、しかもインポートの際にそのようにデータを認識させることができ、さらにエクスポートの際にもデータの欠落が発生しません(このあたりはいずれ解説します)。この「スプリット取引」の機能こそGnuCashの神髄と言えます。

2021/11/09

GnuCashにデータを入力する方法(通常取引篇)

←前回の記事:2021/11/07 GnuCashの動作設定

_GnuCashに最初に触れるユーザーは、まず「どうやってデータを入力すればいいんだろう」と途方に暮れるところでしょう。他の家計簿アプリと異なり、GnuCashは普段の操作においても、常に複式簿記を強烈に意識しなければならないからです。今回は、GnuCashのデータ入力UIのうち、借方・貸方が1対1で対応する「通常取引」(これは筆者の勝手な造語ですが)について解説します。2021/10/31の記事で触れた「スプリット取引」については次回の予定です。

1.まず収入取引を入力してみる

_GnuCashの操作は、↓の【勘定科目タブ】から、操作対象とする勘定科目をダブルクリックして入力画面に移行する、というのが基本になります。すなわち、取引に使用した口座をベースに入力するか、取引の結果として生じた費目をベースに入力するか、どちらの方法でも同じ結果になります。ここでは、親しみやすい前者の手順で入力してみましょう。まず、「23あの筋銀行」の、赤枠で囲った部分をダブルクリックします↓。

23あの筋銀行の名称または残高欄をダブルクリックする

2021/11/07

GnuCashの動作設定

←前回の記事:2021/11/05 GnuCashの勘定科目を設定する


_今回は急遽予定を変更して、GnuCashの動作設定について解説します。我が国のユーザーが家計簿として活用するには項目の大半が無用ですが…中には重要なものもあるので飛ばさずにご覧下さい。なお、↓の画面例の【編集】メニューの中で、【設定】の下に【スタイルシート】という項目があり、色遣いやフォント等をカスタマイズできますが、GnuCashとのデータ変換には関係ないので解説は割愛します。

GnuCashの設定画面

2021/11/05

GnuCashの勘定科目を設定する

←前回の記事:2021/11/04 GnuCashをセットアップする

_今回は、GnuCashを活用するうえでの最重要事項である「勘定科目」について解説します。

1.勘定科目と勘定科目タイプ

_GnuCashには資産・負債・純資産・収益・費用の5種類の勘定科目があり、その下に12種類の「勘定科目タイプ」があります↓。勘定科目タイプとは…例えば、"資産”の部に「その筋株式会社売掛金」という勘定科目を作って、それに「売掛金」と勘定科目タイプを設定すると、GnuCashの「売掛金」に関する機能の動作対象としてこの勘定科目が選択されるようになる、という一種のフラグのようなものと考えてください。ですから、この「勘定科目タイプ」の設定を間違えるとGnuCashはユーザーの意図どおりの動作ができません。

 また、これらとは別に「複数の通貨・商品を含む取引のために」ということで"通貨取引"という特殊な勘定科目タイプが用意されています。普通に家計簿として使う分には気にしなくて良いでしょう。

2021/11/04

GnuCashをセットアップする

_GnuCashの連載に突入するにあたり、まずすべきことはインストールとセットアップです。当BlogではPC(Windows)版を取り扱います。なお、公式サイトはこちらです(日本語)。インストーラのダウンロードもここから行ってください。2021年10月25日現在の最新バージョンは4.8です。

_なお、インストール手順には特筆すべき事柄は無いので、今回はGnuCashの初回起動から解説します。

1.インストール後の初回起動

_インストール後の初回起動では↓のようなダイアログが出現します。 ここでは【勘定科目セットを新規作成する】を選びます。何せGnuCashはこれをやらなければ何も出来ませんから。

GnuCash初起動後のチュートリアル

2021/10/31

11月の予告…GnuCashとの苦闘の結果をお届けする予定です

_当Blogの記事のアップが滞っているのは、筆者が怠けているか大ネタを仕込んでいるかのどちらかですが…今回は後者の方です。

GnuCashタイトルダイアログ

_現在、GnuCash(公式サイトはこちら)に取り組んでおります。当Blogでは初めて登場するソフトウェア名ですな(これまで1回も記載したことが無いはずです)。正直に申し上げれば、これまでは極力避けるようにしておりました。さる読者の方から記事化の要望をいただいており、1年前にインストールはしてみたものの…あまりの取っつきにくさと、まだまだ未対応箇所がある日本語化の状況にあっさり挫けた、というのが実情です。

_GnuCashは小規模な事業者に向けた財務・会計ソフトと言われつつも、もちろん家計簿アプリとしても活用できます。その特長は…筆者としては、いわゆる複合仕訳を可能とする「スプリット取引」機能にあると考えています。すなわち、1回の取引に、複数の仕訳情報を含めて記帳できるわけです。

_類似の機能はDr.WalletMoneyProZaimマイクロソフトマネーにも実装されておりますが、収入・支出を混在させられないとか、取引データをエクスポートすると情報が欠落するとか、それぞれに問題を抱えています。また、取引データを「複合仕訳のデータである」とアプリ側に認識させてインポートできるのは、筆者の知る限りではZaimのみです。これらに対し、GnuCashはエクスポート/インポートの双方向でスプリット取引機能を活用できます。

_ただし、スプリット取引として記帳されたデータをエクスポートしても、それを正しく解釈するのは大変な困難が伴います。そしてより困難なのは、取引データをGnuCashにインポートする際に、スプリット取引を正しく認識させることでありまして…GnuCash側のバグではないかと疑われる動作も見られました。

_現在の状況としては、スプリット取引のエクスポート/インポートに対応したMFFマクロは概ね開発できており、筆者の友たるマスターマネーのデータをGnuCashにインポートし、さらにGnuCashからエクスポートすることで全く同じ家計簿データを再現できるところまでは確認しております。ソースリストは近いうちに公開できるでしょう。

_問題は、GnuCashそのものの解説をどこまでするか、という点でありまして…ネット上には非常に断片的な情報しか無いため、操作方法や考え方といったところまで触れなければならないのは覚悟しておりますが…筆者の乏しい能力と意気地では自ずと限界が来ます。よって、当Blogの基本方針どおり、データ変換に関する内容を中心に取り扱いたいと思います。それでもかなりのボリュームになるだろうなあ~

連載記事はこちらです→

注目の記事

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

 二年前の2022/03/14 家計簿アプリとデータをやりとりする際のファイル形式のまとめ でご紹介した情報をアップデートしました。 1.家計簿アプリからエクスポートされるファイルの形式一覧 2.家計簿アプリへインポートするファイルの形式一覧 ...

最近の人気トップ3