試算表から決算書を作成する【データベースS/Wを利用】 70

試算表ファイルを、データベースソフトウェアにインポートし、整形する方法を説明します(一例として紹介するものです)
ここでは、整形の目的を、「決算書に準じた様式に変換」することとします
データベースソフトウェアとしては、MicrosoftのAccess(2003)を利用することにします
なお、「Access」の操作等についての解説はここでは行いません、ユーザに一定の理解・経験があることを前提としています、なお、VBAによるプログラミングは行わないこととします


1.試算表ファイルにGCodeを追加する

GCodeをレポートの多段集計のために使用します(本来は、合計科目の集計用に利用します)

GCodeは、科目マスタの科目Codeに対応させて登録します
レポートでの区分に合わせて必要なGCodeの数を決定します、例えば

資産−固定資産−有形固定資産−建物(明細科目としての「建物」と「建物減価償却累計額」の合計)
という集計レベルを設ける場合は、4つのGCode(GCode0〜GCode3)を科目マスタに登録します
ここでは、決算書に準じた様式に変換するため、もう一つGCode(GCode9)を追加します
これは、本来の貸借区分とは逆の位置に科目を表示するための工夫です、貸倒引当金を借方に表示したり自己株式を貸方に表示する場合などがこれに該当します
正位置に表示する場合は「1」、逆位置に表示する場合は「-1」とします



【科目定義ファイル】 【科目マスタ】(抜粋)
MA_GCode0
MA_GCode1
MA_GCode2
MA_GCode3
MA_Code
MA_NameL
MA_DC
MA_Class0
MA_GCode9
1,1,1,1,111,現金,D,12,1
1,1,1,1,112,当座預金,D,12,1
1,1,1,1,113,普通預金,D,12,1
1,1,1,1,114,定期預金,D,12,1
1,1,1,2,120,受取手形,D,10,1
1,1,1,2,121,売掛金,D,10,1
1,1,1,2,122,有価証券,D,10,1
1,1,2,3,123,商品,D,10,1
1,1,2,3,124,貯蔵品,D,10,1
1,1,2,3,125,前渡金,D,10,1
1,1,2,3,126,前払費用,D,10,1
1,1,2,3,127,短期貸付金,D,10,1
1,1,2,3,128,繰延税金資産(流動),D,10,1
1,1,2,3,129,その他流動資産,D,10,1
1,1,2,3,130,貸倒引当金(流動),C,10,-1
1,2,3,4,1411,建物,D,10,1
1,2,3,4,1412,建物減価償却累計額,C,10,-1
1,2,3,5,1421,構築物,D,10,1
1,2,3,5,1422,構築物減価償却累計額,C,10,-1
1,2,3,6,143,車両運搬具,D,10,1
1,2,3,6,144,器具備品,D,10,1
1,2,3,6,145,土地,D,10,1
1,2,3,6,146,建設仮勘定,D,10,1
1,2,4,7,151,借地権,D,10,1
1,2,4,7,152,その他無形固定資産,D,10,1
1,2,5,8,161,投資有価証券,D,10,1
1,2,5,8,162,子会社株式,D,10,1
1,2,5,9,163,長期貸付金,D,10,1
1,2,5,9,164,敷金保証金,D,10,1
1,2,5,9,165,繰延税金資産(固定),D,10,1
1,2,5,9,166,その他投資等,D,10,1
1,2,5,9,167,貸倒引当金(固定),C,10,-1

科目マスタにGCodeが設定されていることを確認し、「Ins7GCode12ZTB(vi)」スクリプトを実行します
上記の例では、ユーザスクリプトは以下のようになります
---------------
Ins7GCode12ZTB(0)
Ins7GCode12ZTB(1)
Ins7GCode12ZTB(2)
Ins7GCode12ZTB(3)
Ins7GCode12ZTB(9)
---------------

【ユーザスクリプト実行前の試算表ファイル(抜粋)】

111,現金,D,48,0,48,122,100,22,170,100,70
112,当座預金,D,1500,0,1500,8000,4600,3400,9500,4600,4900
113,普通預金,D,12000,0,12000,36000,25300,10700,48000,25300,22700
114,定期預金,D,8000,0,8000,30000,20000,10000,38000,20000,18000
120,受取手形,D,2396,0,2396,0,834,-834,2396,834,1562

【ユーザスクリプト実行後の試算表ファイル(抜粋)】

111,現金,D,48,0,48,122,100,22,170,100,70,1,1,1,1,1
112,当座預金,D,1500,0,1500,8000,4600,3400,9500,4600,4900,1,1,1,1,1
113,普通預金,D,12000,0,12000,36000,25300,10700,48000,25300,22700,1,1,1,1,1
114,定期預金,D,8000,0,8000,30000,20000,10000,38000,20000,18000,1,1,1,1,1
120,受取手形,D,2396,0,2396,0,834,-834,2396,834,1562,1,1,1,2,1

試算表ファイルの各行末尾に集計用のCode(GCode)が付加されました
「Del7GCode12ZTB()」スクリプトを利用すると付加されたGCodeを削除できます

2.Accessで整形用のテーブル、クエリー、レポートを準備する
【「試算表_インポート」テーブルのデザイン】
「試算表ファイル(GCode付き)」のデータをインポートするテーブルを設計します
試算表ファイルの各フィールドに合わせてフィールド名やデータ型を決めます
上記例の場合は左記のようになります
このテーブルを基にして、テーブル、クエリレポートを作成しておけば、ここに最新のデータをインポートするだけで、整形後の試算表を作成することができます

【「タイトル」テーブルのデザインとデータ】

「GCode」の値に対応するタイトルを表示するテーブルを設計し、データを入力します
この例では、4段階で集計を取るため、4つのテーブルを作成しておきます
上記は、一番下の集計レベルのkeyとそれに対応するタイトルのテーブル(GKey3)です
同様の内容のテーブル、GKey0〜GKey2も作成します

【「BS科目抽出」クエリーの設計】

レポート作成の基になるクエリーを作成します
BS科目だけを抽出するため「BS区分」という式を定義しています
画面では欠けて見えませんが、式は「Left([Code],1)」で、科目Codeの左から1文字を切り出し、これが「1」のデータを抽出します
「BS残高」は、試算表ファイルの繰越残高に「GKey9」の値を乗じたものとして定義しています
これは、科目を貸借区分と逆サイドに表示する場合、金額をマイナス表示するためのものです

【「試算表(貸借対照表)」レポートの設計】

BS抽出クエリーを基にしたレポートを作成します
レポートの「並べ替え/グループ化」機能を利用することで多段集計を実現しています
プログラミングを行わないという前提のため、ダイナミックに多段集計を行うことができないという制約(特定の科目グループごとに集計レベルを変更できない)はありますが、試算表ファイルを簡単に整形するということであれば問題はないでしょう


3.試算表ファイルをAccessの「試算表_インポート」テーブルにインポートする




Last Update 202/04/17