弥生会計からFilemakerProへ勘定科目と補助科目をインポートする

弥生会計12の勘定科目と補助科目をFilemakerに取り込んで科目マスターに利用する

この記事は次のブログに引っ越しました。

弥生会計12の勘定科目と補助科目をFilemakerに取り込んで科目マスターに利用する 12:30 弥生会計12の勘定科目と補助科目をFilemakerに取り込んで科目マスターに利用するを含むブックマーク CommentsAdd Star FileMakerで仕訳データを作成して弥生会計で集計をしたい場合など、FileMaker弥生会計と連携をする際、勘定科目や補助科目に合わせた税区分や税計算区分などを同じにする必要あります。(弥生会計Filemakerの同期) その場合に、問題なのは弥生会計FileMakerの、どちらの設定をマスターとするかだと思います。 弥生会計はインポート機能が十分でないため、外部CSVファイルから勘定科目や補助科目の自動登録はできません。(手打ち後にサーチキーなどの変更はインポートでできますが、補助科目が大量にあると泣きそうになりますよね) そのため、前期繰越金の初回入力と同様、勘定科目や補助科目は基本、手入力になります。 そこで、弥生会計に頑張って入力した勘定科目と補助科目をマスター(親)とするのが得策になるのですが、FileMaker側との科目の同期は、弥生会計からエクスポートしてFileMakerへのインポートになります。 参照という意味では、弥生会計Microsoft SQLサーバーを使っているので、実はODBCなどを使っての外部ファイルとしてのアクセスも可能なのですが、けっこう簡単に弥生側のファイルが壊れてしまいます。 その壊れる頻度とリスクと、更新頻度を考えると、いささか手間ではありますが、やはり弥生会計から勘定科目のリストをCSVファイルにエクスポートして、FileMaker側にインポートするのが得策だと感じました。ちなみに、CSVの出力タイプは「汎用形式」がいいでしょう。(補助科目は汎用形式でしかエクスポートできないため) 勘定科目テーブルと補助科目テーブルのリレーション 弥生会計からエクスポートした、勘定科目と補助科目のCSVファイルは、「勘定科目名」で紐付ける(リレーションさせる)仕様になっています。サーチキーなど、科目コードではありません。 問題は、その勘定科目側のフォーマットで、カテゴリ(階層)が6階層になっているため、どの階層に、補助科目が所属する勘定科目があるかわからず、リレーションさせるのに苦労します。 そこで、下手に自己リレーション、再帰処理、値一覧といったテクニックを使わずに、弥生会計の仕様を利用した、シンプルな方法で解決します。 ■弥生会計の勘定科目のCSVエクスポート仕様 勘定科目名のある行(レコード)は「[表題行]」の列の値が「[明細行]」である カテゴリ名は"["と"]"の大括弧で括られており、勘定科目名には大括弧がない "帳票名","勘定科目一覧表"↓ "書式名","汎用形式"↓ "事業所名","My事業所名"↓ "処理日時","平成24年07月16日","23:10:01"↓ "[表題行]","階層1","階層2","階層3","階層4","階層5","階層6","サーチキー1","サーチキー2","サーチキー3","貸借区分","税区分","税計算区分","税端数処理","簡易課税事業区分","補助必須","決算書項目","非表示"↓ "[区分行]","[資産]","","","","","","","","","","","","","","","",""↓ "[区分行]","[資産]","[流動資産]","","","","","","","","","","","","","","",""↓ "[区分行]","[資産]","[流動資産]","[現金・預金]","","","","*GENYOKI","*ゲンヨキン","*100","","","","","","","",""↓ "[明細行]","[資産]","[流動資産]","[現金・預金]","現金","","","GENKIN","ゲンキン","1110","[借方]","対象外","","[指定なし]","","no","現金及び預金","no"↓ "[明細行]","[資産]","[流動資産]","[現金・預金]","現場勘定","","","GENBAKA","ゲンバカン","1111","[借方]","対象外","","[指定なし]","","yes","現場勘定","no"↓ "[明細行]","[資産]","[流動資産]","[現金・預金]","当座預金","","","TOUZAYO","トウザヨキン","1120","[借方]","対象外","","[指定なし]","","yes","現金及び預金","no"↓ (以下略。↓は改行) ■基本的な流れ 勘定科目と補助科目用のテーブルを作成 弥生会計からエクスポートした勘定科目と補助科目の汎用形式のCSVファイルを、インポートさせるテーブルを各々作成 (例「勘定科目テーブル」「補助科目テーブル」) CSVを「勘定科目テーブル」と「補助科目テーブル」に各々インポートするスクリプトを作成※ 「補助科目テーブル」とリレーションさせるためのフィールドを「勘定科目テーブル」側に新たに作る 上記のインポート用スクリプトに、インポート後に「フィールド内容の全置換」で「階層1〜6」の列を参照して、"[]"(大括弧)がない列のデータをリレーション用のフィールドにコピーする ※このとき、インポートしたヘッダー部の5行(頭から5レコードぶん)を削除するようにします。 以上で、科目名でリレーションできるテーブルが出来上がります。補助科目テーブルの「[所属勘定科目]」列とリレーションさせるといいでしょう。 以下は上記の「フィールド内容の全置換」の置換式。 Case( 表題行 = "[明細行]" and Left( 階層1; 1 ) ≠ "[" and Right( 階層1 ; 1 ) ≠ "]"; 階層1; 表題行 = "[明細行]" and Left( 階層2; 1 ) ≠ "[" and Right( 階層2 ; 1 ) ≠ "]"; 階層2; 表題行 = "[明細行]" and Left( 階層3; 1 ) ≠ "[" and Right( 階層3 ; 1 ) ≠ "]"; 階層3; 表題行 = "[明細行]" and Left( 階層4; 1 ) ≠ "[" and Right( 階層4 ; 1 ) ≠ "]"; 階層4; 表題行 = "[明細行]" and Left( 階層5; 1 ) ≠ "[" and Right( 階層5 ; 1 ) ≠ "]"; 階層5; 表題行 = "[明細行]" and Left( 階層6; 1 ) ≠ "[" and Right( 階層6 ; 1 ) ≠ "]"; 階層6; "" )