Perl と呼ばれる言語で書かれており、本来 Unix 用であるが、Windows 用の Perl もあるので、それをインストールすれば、Windows でも実行可能である。
プログラムは、本書の最初のページにリンクが張ってあるので、そこから ダウンロードして欲しい。
まず、入力データは期首貸借対照表と仕訳帳の各行である。 また、出力は、キャッシュフロー計算書、名目フロー試算表、 実在フロー試算表、貸借対照表としておこう。 なお、名目フロー試算表は損益計算書のことであるので、これで目的のすべての 財務諸表がそろうことになる。
すべての入出力データは直列式で表現することにする。 並列式であると同じ数字が左右に入ってくることになるが、これと比較した 場合、入力の手間が半分にできること、左右の数字が合わないなどのミスを 避けることができるなどの観点から、計算機処理ではほとんど直列式が 採用されている。 つまりデータの基本は表13.2の形をしている。
表計算ソフトの場合には、この三列を基本とした行の集合を入力データとする。 またその他のプログラム処理では、この三列分のデータを tab などで 切離したフィールドとみなし、行単位をレコードとみなす入力データの 集合とするのが合理的であろう。
詳細については後述するが、キャッシュフロー計算書作成の都合で仕訳帳の 各行は必ず上の形をしているのが望ましい。 一方、期首貸借対照表は複数行で平衡がとれるように作成されているので、 若干の配慮が必要である。 例えば、表13.3のような形をしている。
この場合には次のように取り扱おう。 最初のデータを見てほしい。 この左借方科目は「現金」であるが、右貸方科目を「 」であるとする。 つまり空欄を一つの勘定科目とみなすのである。 このように取り扱うと、まず、各行で平衡がとれていることになる。 また、期首貸借対照表全体でも、左借方の「 」の合計は300000、 右貸方の「 」の合計は300000 となり、やはり「 」の 平衡がとれていることになる。 これを逆に利用すると、「 」の平衡のチェックにより、期首貸借対照表の 正当性を検証することができる。 tab 区切データの場合には、空欄の科目も含め、どの科目にも何桁かの空白を 入れて、表がきれいに並ぶように、長さを調整しておくとよいだろう。
表計算ソフトでは、作業領域を容易に限定できるが、行単位処理を行なう ソフトでは、行によって読み込みを無視できるよう、頭に何らかの記号、 例えば「/」を付けられるようにしておく方がよいであろう。 題目や合計欄の頭にある「/」記号は、この対応である。 表計算ソフトを利用するときには不要である。
仕訳帳についても同じ形式の表13.4に示すようなデータを 用意する。 欄外に日付や摘要がある方がよいであろう。 ただし、処理されるデータは最初の三列だけである。 名目勘定科目には「!」記号を付ける方がよいであろう。 この記号なしで作業を行なおうとすると、どの勘定科目が実在勘定か、どの 勘定科目が名目勘定かが字面だけでは判定できないため、勘定科目一覧とその 分類を書いた対応表を別に用意し、それを一々参照しながら 作業することになるからである。
仕訳帳では、複数行にわたる仕訳は書かない方がよいであろう。 というのは、このデータはキャッシュフロー計算書作成の際に 利用するからである。 キャッシュフロー計算書の作成の際、取引がキャッシュ性であるか 非キャッシュ性であるかの判定が必要であるが、貸方か借方の 勘定科目のいずれかに現金同等物の科目名が入っている行の情報はキャッシュ 部分に移動し、どちらにも現金同等物の科目名が入っていない行は 非キャッシュ部分に移動することで、直接法によるキャッシュフロー計算書を 作成するからである。 もちろん、ちょっとした工夫により、複数行の処理も可能となるが、ここでは 詳細を省く。
同様に、キャッシュフロー計算書の章で示したように、一行にキャッシュと 非キャッシュの実在勘定が組になった仕訳は、あらかじめ二行に分離しておく。 これもキャッシュフロー計算書対策である。 キャッシュフロー以外の計算では、この二行は共通項が相殺し合い、 一行のように振舞うので、問題はない。
キャッシュフロー計算書の作成では、現金同等物として分類される勘定科目は 「現金」、「普通預金」、「当座預金」が考えられる。 ここでは「普通預金」と「当座預金」を共に単に「預金」と表現してある。 仕訳帳の各行を見て、こうした勘定科目の入っている行だけを取り出し、 まとめる。 これを勘定科目ごとに集計すると、表13.5に示す 直接法によるキャッシュフロー計算書が得られる。 該当する勘定科目が左借方にあれば、金額だけ増加し、右貸方にあれば 減額する。 こうして得られた総計が正であれば、出力としては勘定科目を左借方に書いて、 金額に総計を書く。 また総計が負であれば、勘定科目を右貸方に書いて、金額欄には総計の絶対値を 書く。
非キャッシュフロー計算書についても同様であり、現金および現金同等物の 勘定科目を持たない行だけを取り出し、同様な集計を行なう。
こうして作られたキャッシュフロー計算書等の各科目を CFO、CFI、CFF 等に 分類するのは、手作業で行なう方が簡単である。 もちろん、大会社を前提とした汎用ソフトを開発するときには、これらの 分類も、勘定科目の分類表を参照しながら、自動的に行なうようにする 必要があろう。
キャッシュフロー計算書と同様の作業をキャッシュ分、非キャッシュ分の
区別なく行なうとフロー試算表が完成する。
それを名目勘定分と実在勘定分に分けて出力すれば、表13.6に
示す名目フロー試算表と実在フロー試算表が得られる。
ただし、この左右の合計は合わないので、名目フロー試算表の平衡項として
「!*当期利益」の形で、また同額を実在フロー試算表の平衡項として、
を「*当期利益」の形で追加する。
期首貸借対照表と実在フロー試算表を一緒にして、重なっている勘定科目は 合計し、そうでないものは互いに追加し合うと、表13.7に示す 期末の貸借対照表が完成する。
利益剰余金化では税処理は無視して、この時点で当期利益が 確定したものとしよう。 すると、これを利益剰余金化する必要がある。 その場合には仕訳帳に表13.8に示す取引を追加し、再度、 計算をやり直す必要がある。
この取引を入れて再計算した結果、キャッシュフロー計算書、 実在フロー試算表、名目フロー試算表 (= 損益計算書)、貸借対照表は 表13.9のようになる。 計算機による計算は一瞬で終了するので、この再計算は余り問題にならない。
これが、そのまま次期の期首貸借対照表として利用されることになる。
先にも述べたように、これらの計算は、現在の計算機能力ではほとんど一瞬の 時間でできるので、毎日、貸借対照表の計算を行ない、日々の残高照合を行な うことができる。 つまり計算機の利用により、総勘定元帳を廃止することがで きる。 また、棚卸などの種々の資産の再評価も日々行なうことができる、決算 時の労力を大幅に減ずることが可能となる、といったいくつもの利点が生じる。