家計簿アプリの自作

PC

私は、もうかれこれ15年ほど、家計簿を自作のアプリで付けています。
アプリを自作したのは、プログラミングの自習という目的もありますが、自分が見たいグラフを見れるようにしたかったという目的もあります。
今日は、その自作の家計簿アプリを紹介したいと思います。

家計簿アプリ自作のきっかけ

私が家計簿をつけ始めたのは、社会人になってからです。
社会人になって一人暮らしを始め、これはお金の記録を付けて管理しないとまずいなと思ったのがきっかけです。
最初はパソコンのExcelで、出費の記録を付けているだけでした。
ただExcelだと、出費と残高が一致するのかの確認が難しく、Excelでの管理に限界を感じました。
管理する口座(財布)が一つであればExcelでもできるのですが、銀行口座からの引き落としや、別の銀行口座への振り替えがあった場合に、それをExcelで記録するのは難しかったです。
社会人になってプログラミングを覚えたこともあり、家計簿アプリを自作することにしました。

アプリ概要

私の自作の家計簿アプリは、Windowsデスクトップアプリとして作っています。
一時期Webアプリにしていた時期もあったのですが、仕事でWindowsデスクトップアプリを扱っていることと、家計簿をつける場所・PCも決まっていることから、デスクトップアプリにしました。
この家計簿アプリでは、以下のような要素技術を使っています。

Windows.FormsによるUI

今新たにアプリを作るのであれば、WPFを使うと思いますが、作り始めた当初はWPFもありませんでした。
WPFへの移行も面倒で、Windows.Formsのままにしています。

Chartコントロールによるグラフ表示

Windows.FormsでUIを作る場合、グラフ表示はVisual studioに最初から付属しているChartコントロールを使うのが最も簡単です。
私の家計簿アプリのグラフ表示も、このChartコントロールを使っています。

SQLiteを使ったデータベース

家計簿のデータはSQLiteで保存・読み出ししています。
個人の家計簿でもデータ数は数万程度にはなるため、データベースを使った方が良いと判断しました。
Windowsデスクトップアプリでデータベースを使うのであれば、SQLiteが軽量で環境構築も要らず、簡単です。

テーブル構造

この家計簿アプリのデータベースは、テーブル一つのみで実現しています。
以下のようなフィールドを持っています。

名前データ型
ID数値
日付日時
金額数値
種別名文字列
移動元口座文字列
移動先口座文字列
備考文字列

特徴は、1つのレコードに「移動元口座」「移動先口座」を記録することです。
例えば財布から5000円払ったら、移動元口座が財布、移動先口座が空欄になります。
20万円の給料が銀行口座Aに振り込まれたら、移動元口座が空欄、移動先口座が口座Aになります。
このように記録することで、お金を貯めている口座が複数あった場合に、すべての記録を集計することで、「今、どの口座にいくらあるか」を確認できるようになります。
移動先口座が空欄のレコードを全部足せば支出が、移動元口座が空欄のレコードを全部足せば収入が計算できます。

種別名・口座名は別テーブルにする方法もありましたが、別テーブルにするとデータの編集が面倒になることから、種別名も口座名も文字列で登録することにして、1テーブルにまとめました。

入力方法

家計簿をつけるにあたり、一番面倒なのが入力作業です。
1レコードずつ入力するための入力画面も作っていますが、全部1レコードずつ入力していては時間がかかりすぎます。
基本的に家計簿に入力するのは、各銀行口座の入出金明細です。
であれば、各銀行口座で表示またはダウンロードできる入出金明細を、コピペして入力するのがよかろうと、そのような仕様にしました。

各銀行口座の入出金明細のフォーマットは決まっているので、何列目が何のデータに相当するのか設定を準備しておき、コピペしたらその設定に従って一括で読み込めるようにしています。
備考列に書かれている文字列に従って、種別名も自動で入力されます。

集計画面

私が家計簿を集計して一番見たかったグラフは、収入と支出の比較の棒グラフでした。
見たいグラフを自在に見れるようにできるのが、自作の良いところです。
以下のようなグラフを表示できるようにしています。

今まで家計簿をつけてみて

15年間家計簿をつけてきて、データベースの総レコード数は10000を超えました。
我ながら、よくここまで続けてきたなと感心してしまいます。
15年分の集計を見ると、人生の各イベント(結婚式・家購入など)の支出が如実に分かり、人生を見ているかのような感慨があります。

これだけの長期間、家計簿をつけてこれたのは、自作アプリだからという面もあると思います。
データベースさえなくさなければ、アプリの保守・改造はいくらでも可能なわけですからね。
世の中の変化に巻き込まれることなく、家計簿をずっとつけ続けられるというのは、大きな安心感です。

私は、もうすっかりこの自作家計簿アプリで家計を管理することに慣れてしまいました。
たぶんこれからも続けていくでしょう。
30年、40年とつけ続けた時に、どのようなグラフが見れるのか、楽しみです。

コメント