Lisp で頻繁に使われる emacs の上で決算計算を行うプログラムを開発した。 emacs のバッファ上で領域指定すると、指定範囲の仕訳をたちどころに集計し、 残高試算表を作成してくれる。 メモ書きソフト howm に触発され、日々の記録から、いつでも資産残高が 計算できるので、便利である。 Perl のソフトよりもはるかに簡便に計算できるが、 キャッシュフロー試算表などは出力されない。
プログラムは、本書の最初のページにリンクが張ってあるので、そこから ダウンロードして欲しい。
[概要] emacs で region (C-space で始点を定め、カーソルの現在位置が終点とな る領域) を指定し、その間に存在する特定の文字列の組み合わせを仕訳とし て会計計算する。 region 内の科目ごとの総計を計算し、region の直後に一行 空行の後、表示する。 region の最初に表われた単語をタグ (@a@ や $$$ のような 通常の単語として使わないものが望ましい) とし、 `タグ 科目 金額' `タグ 科目 科目 金額' の組み合わせを仕訳とみなす。 [書式の詳細] タグ、科目は、空白、TAB で区切られた任意の文字列 (!*- などが入って いてもよい)。金額は区切りコンマと、負数のためのマイナスを許す。 [複式簿記として使う場合] `タグ 科目 科目 金額' の形式を原則とする。最初の科目を左借方科目、 次の科目を右貸方科目とみなす。つまり `左借方科目 金額 右貸方科目 金額' の省略形である。 費用を 現金 で支払うような `タグ 科目 現金 金額' の場合は、頻度が高い ので、`タグ 科目 金額' と略してよいこととした。 収入は、原則、`タグ 現金 収入科目 金額' とするが、省略形で、金額を負 数にしてもよい。 データの最初に前期の B/S を付けておき、そこから region を設定すると region の最後の日付における残高試算表が得られる。この名目勘定部分から P/L (損益計算書) が、実在勘定部分から B/S (貸借対照表) が簡単に得られ る。なお、残高試算表の名目勘定の部分だけを region に設定して accounting-region を実行すると、当期利益が現金 (もちろん、本当の現金 ではない) という項目で計算できる。 当期の仕訳部分だけを region に設定すると、当期のフロー試算表が得ら れる。 データ例: ...@a@ [前期 B/S] ... ...@a@ 現金 純資産 20,000 前期繰越 ... ...@a@ 預金 純資産 95,000 前期繰越 ... ...@a@ [当期仕訳帳] ... ...@a@ !食費 500 2005/1/3 ... ...@a@ 現金 !給料 100,000 2005/1/25 ... データは通常の文中にあっても OK。ただし、タグから数字の間に CR があっ てはならない。また、region は計算したいデータの最初のタグの開始点に置 かなければいけない。 前期 B/S は次のように書いてもよい。 ...@a@ [前期 B/S] ... ...@a@ 現金 . 20,000 前期繰越 ... ...@a@ 預金 . 95,000 前期繰越 ... ...@a@ . 純資産 115,000 前期繰越 ... 空欄に '.' を入れたが、これを空欄とすると、負債や純資産の行、例えば 第三行目の場合、「純資産」の前に長い区切が置かれているとみなされるので、 よくない。この場合、資産の行にも '.' を入れないと、空欄は 現金とみなされるので、現金の総額が合わなくなり、平衡が崩れる。 ...@a@ [前期 B/S] ... ...@a@ 現金 20,000 前期繰越 ... ...@a@ 預金 95,000 前期繰越 ... ...@a@ 純資産 -115,000 前期繰越 ... とするのも手であるが、将来、このプログラムでキャッシュフロー計算書も 出せるように考えており、その場合、行に現金同等物が入っているかどうかで 計算対象とすることを想定しているので、避けておいていただく方が 無難である。 [小遣帳、現金出納帳として使う場合] `タグ 科目 金額' とすると、科目ごとの支出が計算できる。収入に対して は金額を負数にするか、`タグ 現金 収入科目 金額' とする。 これだけだと、現金の使用額しかわからないが、現金の現在高は、最初の 行に `タグ 現金 純資産 金額 前期繰越' のような仕訳を一行入れておき、そこから region を設定すればよい。 ただし、対した差はないので、複式簿記の概念で記載する方が、すべての 財産が統一的に管理できるので、それを強く薦める。 [預金残高も計算したい場合] 預金との出入りは、科目の片方を `預金' とすればよい。銀行や口座が複 数ある場合には、科目を詳細にして `定期(A銀行)' などとすればよい。