匠達のセル道TOPへ    


第9回  WinArrow編  インタビュー実施日:2002/11/16


ご指名を頂き光栄ですが、「匠」という器ではないので恐縮しております。
インタビューにお答えする前に、自己紹介という意味で、私とコンピュータとの関わりを少しお話しようと思います。
私は、昭和37年に、某電機機器製造会社松本工場に入社しました。
当時は計算器といったら、事務職場では、「そろばん」が主流でした。
昭和40年初期に事務机の上を全部占領するような電気計算機、割算をすると壊れるから割算はしないようになどといわれて使ったことがありました。その後、液晶の電卓がでてきました。
当時の液晶電卓は\26,000と高価でしたが自費で購入して、製品のコスト見積などの仕事で使っていました。
オイルショック(昭和48年頃)で、銅の建値が著しく変動し製品への影響が大きく、建値が変わる度に製品への影響度を計算させられた記憶があります。
見積をそろばんでやっていると時間はかかる上に間違いは多いし、で上司からは「早くしろ」と怒鳴られるし、「こんな仕事はコンピュータの仕事だ」とブツブツいいながら仕事していたこともありました。
当時、コンピュータが導入されていたが、別棟で近寄りがたい存在でした。
昭和49年頃、オープンSEを育てようという計画で、COBOLのプログラムを勉強はじめました。
それが、私がコンピュータと関わりを持った最初でした。
その1年後、システム部門に席を置き、約14年間、業務システムの開発や電算機の運用管理システムの構築などに携わってきました。その間に、バッチ処理の自動運転などに関する論文に入選、COBOLプログラムを仕様書から自動作成する研究など、今となっては、貴重な経験をさせていただきました。
その後、ユーザー部門のOA化推進に携わり、当時配備されていたFACOM9450系をFM-R(MS-DOS)への置換え、使用ソフトもEPOCALC,EPOACEをLotus1-2-3(MS-DOS版)に変換サポート等の仕事を担当してきました。前置きはこのくらいに致します。

1 初めてエクセルに触れた時期は?

Windows95が会社に導入された1996年頃だったと思います。
Excel95は、それまで主流であったLotus1-2-3(MS-DOS版)にとって変わる表計算だと考え、先んじてマニュアル片手にExcelの勉強をはじめました。
Excelは、Lotus1-2-3と考え方が共通しているところがあり、私にはそれほどの抵抗感はありませんでしたが、どこにでも、抵抗勢力が少なからずいて、「折角覚えたLotusなのに、どうしてまた変えるんだ?」などと反発しました。
そんな抵抗勢力には、論理だけでは納得してくれないので実物を見せるなどの対応で味方を増やしていきました。
マクロ関係は、最初「こんな長い命令覚えられるか!」と多少ふてくされたこともあったが、今、ふりかえってみるとExcelは素晴らしいソフトであり、覚えておいてよかったと痛感しています。
 

2 初めてVBAコードを書いた時期は?

明確には覚えていませんが、自分が仕事で使っていたLotus1-2-3のExcelへの変換だったような気がします。
Excel95は、Lotus1-2-3のマクロがそのまま動いたので、処理速度のテストをしたことを覚えています。
処理内容による違いはあると思いますが、
 Lotus1-2-3(MS-DOS版):?
 ExcelでLotusマクロ実行:1分以上
 ExcelVBAで実行:1秒位
と、ExcelVBA処理が最も早いことが分かり、ExcelVBAの素晴らしさを痛感した記憶があります。

Lotus1-2-3にもマクロの自動記録はありましたが、キー操作を間違えるとそのまま記録されてしまい、あとで見直すと何をしているんだかわからなくなるので、都度、修正していました。反面、Excelの自動記録は、ダイアログの中の指定間違いは記録されないので、その点、助かりました。
 

3 VBAコードを書く時間を無理やり1日平均にすると?

会社在職中は、汎用で使えるマクロ、イントラネットのHPで公開する管理資料作成用のマクロを中心に作成していました。VBAだけに特化すると1〜2時間ってところかな?
退職後、自宅にいる現在は、もっと少なく、30分以下でしょう。

4 思い入れのある作品とその理由は?

VBAに触り始めた頃の作品と現時点の作品の2つあります。
1つめは、「企業用カレンダ作成」です。
会社在職中に、MOUGのフリーソフトにこのソフトを登録したのが作品の最初です。
このソフトは、汎用コンピュータのカレンダー作成ノウハウを活かして、Excelで作ろうと考えたのがきっかけです。汎用コンピュータで使うカレンダーと異なり、Excelでは、「見栄え性」と「操作性」を重視して作成しました。
会社では、職場毎に休日が異なっていて、お互いの休日を意識してスケジュールを自動計算するため、職場毎のカレンダーをコンピュータに持つ必要がありました。
現在は、更に、使いやすくするため、Excel2000用にバージョンアップしてあります。
なお、このソフトは、2003年以降の9月の休日計算に関して、天魔さんこと角田さんのアドバイスを頂きました。その節はお世話になりました。あらためて御礼申し上げます。

2つめは、「便利ツール」です。
当初、「はんこ」、「目次作成」、「画像取り込み」など、別々のツールとして作成していたものを統合して、Excel文書作成時に使いたいときにすぐ使えるように改良したものです。以降、幾つかの機能を追加してきまして、現在では、13個の機能にまで増えました。今後も「これは!」という機能があれば追加するつもりです。ご希望などご一報いただければ検討いたします。

5 これからVBAを覚えようとういう方々へのアドバイスを!

アドバイスができるほど知識があるわけではありませんので、少しでも参考になればということで、私がこれまでやってきたことを少し述べさせていただきます。
VBAに限ったことではありませんが、プログラムを作る上で大切なことは、

(1)「そのシステムに携わる人」を中心に考える。
一般的には、「使いやすい」というように表現されますが、そのシステムに係わる人々(使う人は勿論、システムをメンテナンスする人も含みます)の作業を中心に考えるというのが第一条件です。
 プログラムだけではシステムとはなりません。
「プログラム」+「それに係わる人々」=「システム」です。
 時にプログラム作成に没頭してしまうと、プログラムの都合で人間に「このようにしてください」のような言葉がでてきますが、これは本末転倒です。(反省(-_-;))

(2)「遊び心をもつ」
 楽しんで仕事ができるということは、人が仕事をする上で大切な側面です。
 また、プログラム作成者にとっては、自分の技術向上(スキルアップ)にもつながります。
 仕事を優先することはもちろんですが、「こんな機能を付け加えると楽しく仕事ができるかな?」なんてことが考えられるような余裕を持ってほしいですね!

(3)「他人のコードを盗め」
 参考書やマニュアルだけでは、スキルアップを図ることは難しいです。他人の作ったものは、素晴らしい教材です。著作権の問題があるので、本当に盗んで自分の作品として公開することはできませんが、コードを盗む(単純にコピペして自分のソフトとする)のではなく、そのコードを解読して考え方を学ぶのです。

6 初心者時代の作品を「匠達のセル道」でアップさせていただけませんか?

 汎用コンピュータからのデータをExcelで処理することが多かったので、変換仕様を一元管理するために「データデザインをテーブル」化した「CSVデータ取り込み」「固定長データ取り込み」という2つのソフトを作って使っていました。そのソフトが作品としては最初だと思っています。
このソフトをMOUGのVBA活用事例募集に応募しました。
なお、このソフトは、作品として公開されませんでした。
現在は、Excel2000版に改良して「CSV to Excel Magical Converter」(シェアウェア)という名前で、DownLoad ASCIIで公開しています。

7 VBA作成時こころがけていること、宣伝、直リン、何でも結構、最後に一言!

(1)私が実施しているコード作成の場合の手法について、参考になればと思い少し述べさせていただきます。
一挙に大きなマクロを作成するのは、記述そのものも、テストも大変です。処理の順序に従って少しずつ自動記録を併用しながら「Sub 〜End Sub」を作成→固定記述を変数に修正→テスト→OKとなった時点で、上の「End Sub」と下の「Sub」を削除して、結合テストする方法を実行しています。

(2) 昔、COBOLプログラムでのシステム開発には多大な時間がかかっていました。
前置きでも話をしましたが、開発期間を短縮する目的で処理「仕様書」からプログラムを自動作成するためのシステムを研究していました。
ある程度のところまで出来上がったのですが、諸々の条件が整わずに日の目を見ずに没になってしまいました。自分の研究が日の目を見ないと悲しいものがありますが、その時代にWindowsがあったら、きっと素晴らしいシステムができていたなどと、自分で自分を慰めています。

(3)宣伝することは特にありませんが、私の仕事用のHPを見てください。味も面白みもありませんが、ご意見、ご感想いただければ幸甚です。

Let's Charenge !!


匠達のセル道TOP