マイツールに用意されているコマンドで出来ない仕事は無かった。私が考えていることなどコンピュータですべて出来る。私が考えている範囲で“世界初の!“なんてことはまず無い。世界中で、コンピュータの新しいプログラムを発明したら、そのプログラムをなんの見返りもなく公開している人たちが沢山いるのだ。コンピュータもインターネットも独り占めしては上手く使えない。マイツールの考え方も同じだった。
マイツールが開発されたときからするとコマンドの数は増えている。きっと、マイツールの世界にもこんな人たちが沢山いたに違いない。自分の仕事が終わって、どこかに集まり「こんなこと出来た」「こんなのどう」「ならこれも出来ないか」などど、時間を忘れて語り合う風景が想像できる。
目の前の仕事をマイツールにやらせる方法は必ずマイツールの中にある。そのことはマイツールを使っているとだんだんとわかる。こんなコマンドがあればいいのに……と思っていると、そのコマンドはだいたいある。動きが想定内のマイツールのそんなところが、人間的で、日本人的で、文化系的で、偉そうでなく、コンピュータなのになぜがとっつきやすい。マイツールは、逆にコンピュータの専門家、理科系にはなかなか受け入れられなかった。
さて、松本さんからのお題を解く話だった。いつもの簡単に思いつくやり方では出来なかった。マイツールも釣りやゴルフと同じで、ここからが楽しいと思えるか、いやもうやめたとなるか、この辺りが上達する人としない人の違いではないだろうか。こんなことくらいでマイツールが使えないようでは、マイツールの存在はとっくに無くなっている。解決方法は絶対にある。それもマイツールの中にある。
壁にぶつかったこういうときに遊びの経験が役に立つことはよくある。時間があればマイツールをいじっていたころ、マイツール・ユーザーズ・グループ(MUG)が毎月発行していた『MUGニュース』というマイツールの情報満載の会報誌があった。私はこの会報誌を1ページから裏の表紙まで全ての字を読んだ。そして掲載してある事例と同じようにマイツールでやってみていた。他にも、唯一の参考書である佐藤雅栄氏著の「マイツール逆引き辞典」も同様にボロボロになるまで読み返したし、自分のマイツールで打ち返した。この青い佐藤氏の本は今でも私のバイブルである。
まずは、松本さんの会社の販売管理はネクストステップというシステムで管理していて、そのシステムから販売データを出力してマイツールに取り込むというプログラムを作りたい。出力される販売データは72列もある横長の表で、簡単には全ての項目をマイツールに取り込むことが出来なかった。松本さんは、販売データに商品の原価を管理している商品マスタを掛け合わせて、粗利額を計算したいのだった。
これから作ろうとするプログラムで、システムからマイツールに取り込む項目は72項目中、販売日、販売先、商品コード、数量、売価の5項目あればいい。ならばこの5項目だけ取り込む方法を考える。
他のシステムからマイツールにデータを取り込むコマンドは「SGET」だった。マイツールのコマンドは232ケありそのうち4文字以上のコマンドは57ケある。Swquential File Getから名づけられた「SGET」はマイツールでは玄人向けのコマンドだった。今回はいかにも難しそうなこれを使うしかなかった。しかも、マニュアルに載っていない技「裏技」も駆使するしかない。
他のシステムで出力したデータをマイツールに取り込むプログラムを作る。大、小問わずプログラムを作るときに重要なのは、後から他人でも直せることだ。自分で作ったプログラムでさえ、時がたてば直すことが難しい。
では、マイツールに取り込むデータの72項目あるうち必要な項目は何列めにあるかを調べることからはじめる。これはエクセルを使って調べる。販売日は4列め、販売先は47列め、商品コードは63列め、数量は65列め、売価は15列めにあった。それぞれのデータは数字なので、列の幅は12桁あれば十分だった。
列の幅、桁数を考えることなど、今の代表的な表計算ソフト『エクセル』ではありえないことだろう。かつて、この桁数に悩まされたプログラマーは多いと察する。このデータを最初にマイツールに取り込んだときは900桁でも足りなかった。でもこの考え方だと5項目×12桁=60桁あればいい。今回私が使う裏技はマイツールに必要な列だけを取り込む方法で、取り込まない列の桁数を「0」(ゼロ)にするということだった。
SGETコマンドを実行して、大量のデータがマイツールに流れ込み画面が動き出したときの快感が忘れられない。
やっぱりこの裏技で出来たのだ。こんなすごい技を誰から教わったか覚えていない。つづく(文責:中島正雄)
投稿者プロフィール
