COM(Component Object Model)による仕訳ファイルの作成 32 | ![]() |
現在、事務処理で最も利用されているソフトウェアは、Microsoft社の表計算ソフトウェアEXCELでしょう |
|||
<スクリプトの概要> 1.使用するスクリプトは2つあります、「Parse9MkF1XLS2XJ」と「Pars9Fmt12XJ」です 2.「Parse9MkF1XLS2XJ」スクリプトはエクセルのファイルからデータを抽出します 3.「Pars9Fmt12XJ」スクリプトは抽出したデータの書式を整えます Rubyの拡張ライブラリ「Win32OLE」では、EXCELデータの数値はFloatクラスに変換されます このため、数値には小数点が付きます(例えば、0.0、123.0など) このスクリプトでは、この小数点を取り除きます 4.「Parse9MkF1XLS2XJ」は3つの引数を取ります 1番目の引数は、EXCELのファイル名です、拡張子は不要です EXCELファイルは個別フォルダに置いてください 2番目の引数は、データの上から何行目までを項目名として利用するかを指定します 仕訳データは、左上から、項目の並びは仕訳定義ファイルと同じになるように1仕訳1行で記録します 3番目の引数は、作成する仕訳データに付ける法人番号です 記述例:Parse9MkF1XLS2XJ("EXData",3,2000)__EXDataというファイルの4行目以降からXJ_2000を作成 5.「Pars9Fmt12XJ」は2つの引数を取ります 1番目の引数は、仕訳定義ファイルとして利用する法人番号を指定します 仕訳ファイルを仮ファイルにできるように、仕訳定義ファイルを明示的に指定する仕様です 2番目の引数は、仕訳ファイルの法人番号を指定します、上記の例では2000です 記述例:Pars9Fmt12XJ(1000,2000)__DJ_1000のフィールド並びに従ってXJ_2000を整形する |
|||
1.EXCELシート(仕訳)の作成 | |||
EXCELで仕訳データを作成する手順は省略します データは左上から作成することにし、最初の任意の行は見出しとして利用できるようにしています この例では、見出し行は3行です 仕訳データは行単位で作成し、フィールドの並びは仕訳定義ファイル(任意に指定可能)と同一とします 作成したEXCELファイルに任意の名前を付けて、個別ファイルを置くフォルダに置いてください この例では、ファイル名は「Win32OLE_Data」です なお、個別ファイルを置くフォルダの絶対パスの指定は、プロファイルで行います |
|||
![]() |
|||
2.ユーザスクリプトの作成 | |||
ユーザスクリプトを作成します ユーザスクリプトは「展開一番」と同じ要領で作成できます ------------------------------------------------------ require "t1_inside" Parse9MkF1XLS2XJ("Win32OLE_Data",3,2000) Pars9Fmt12XJ(1000,2000) ------------------------------------------------------ 上記のテキストファイルに適当な名前(ここでは、「ParseXL.rb」とします)を付けて「展開一番」のライブラリ(t1.rb,t1_GC.rb,t1_inside.rb)を置いているフォルダに保存します |
|||
3.ユーザスクリプトの実行及び実行結果 | |||
ユーザスクリプトを実行します ここでは、Winddows上でRubyを実行できる、フリーソフトウェア「RDE」を利用します 「RDE」については「フリーソフトウェア1140」を参照してください 以下に実行後の画面を掲載します(註) ここで注意すべきは、「Parse9MkF1XLS2XJ」スクリプトの実行時間が長いことです(テストデータは136件、これの処理に5秒以上もかかっている!) 機会があれば、専門家に解説をお願いしたいところです・・・ (註) 「展開一番」はVer.7.01でスクリプト名の見直しを行い、スクリプト名を一定の規則に則り変更しています 以下の画面は、Ver.7.01以前のスクリプト名です(暇ができたら差し替えます) |
|||
![]() |
|||
ユーザスクリプトの実行によって作成された仕訳ファイル(「XJ_2000.txt」)を掲載します 「Pars9Fmt12XJ」スクリプトで整形すると、EXCELの空白欄(上記C欄)はゼロになる仕様になっています 蛇足になりますが、このユーザスクリプトに他のスクリプトを追加すれば、EXCELの仕訳データからXML形式の試算表を作成し、ブラウザでこれを閲覧することもできます |
|||
![]() |
|||
Last Update 2020/01/31