Updated 1997/03/23
Visual Basic はラクじゃない
Visual Basicは、Windowsアプリケーションの開発ツールです。
RAD(Rapid Application Development)ツールとも呼ばれることもあります。
RADは、綿密な設計をしないで、その場でスクラップ&ビルドでかなりのものが作れるというものです。
EUC(End User Computing)にも最適と言われます。EUCとは、ソフトウェア開発の専門家でなくても、ある程度の
プログラミングがカンタンにできる、すなわちエンドユーザーが使いこなせるということです。
しかし、あえてPCDNではこういう話はみんなウソですと言っておきましょう。
EUCだのRADだのというのは、シロートをだますためのタワゴトです。
ソフトウェア開発者にとって、Visual Basicはそんなにカンタンなものではありません。
もし、あなたがVisual Basicをカンタンなものだと思ってはじめたなら、それは間違いです。
たしかにVisual Basicはとっつきやすいツールには間違いありません。しかし、奥が深いのです。
これには二つの意味があります。
ひとつは、Visual Basicがあまりにも流行り過ぎたため、Visual Basicで何でもできるようにしようと、どんどん拡張がなされてきました。 DDE、データアクセス、OLEコンテナ、OLEサーバー、ActiveXコントロール、RDO、リモートオートメーション... もはやその全容を理解できている人は非常に少ないでしょう。すでにVisual Basic自体が複雑化しているのです。
ふたつめは、Visual BasicはWindowsの難しい仕組みが見えなくてもある程度のプログラムが作れるようになっているからです。
これを逆に言えば、ある程度以上のことをしようと思ったら、Visual Basicだけではできないということです。
そこから先に進むには、暗い、深く、長い、Windowsの基本を知らなくてはなりません。
というわけで、実は難しいVisual Basicとうまく付き合っていくためのヒントを述べていくことにします。
Visual Basicからはじめよう
Visual Basicをちょっとでも触ったことがあれば、ボタンを押したら文字が出るといった、たいしたことをしないアプリケーションなどは、
ほんの数秒でできてしまうことはご存じでしょう。しかし、あなたがすべきことは、そんなことではありません。
まず第一に、Windowsの目指している操作性、すなわち Windowsのユーザーインターフェイスを知ることです。
もしかしたら、あなたは他のOSでさんざんプログラミングをしてきた歴戦のプログラマー戦士かもしれません。
もし、Windowsなんて半日触ったらもうわかっちゃった などと思っているのでしたら、これは問題です。
プログラムを作るには、ユーザーインターフェイスを考えなくてはなりません。しかし、Windowsではユーザーインターフェイスがある程度決まっているのです。
自分で独自のものを作ってはいけません。標準的なものにしないと、バグの元になります。
たとえば、[Enter]キーが押されたら次のフィールドに移動するというインターフェイスを作ってはいけません。Windowsでは[Tab]キーで移動することになっています。
もし、これを守らないようなプログラムにしようとすると、あちこちで例外処理を作らなくてはならなくなり、最終的に破綻します。
Visual Basicでバグが出るという話をよく聞きますが、どんなことをやったら出たかを聞くと、Windowsでの標準的なユーザーインターフェイスを無視したもの
になっていたとか、Windowsのことをちゃんと理解しないで作っていたというケースがほとんどです。
後者については後ほど解説することにして、Windowsのユーザーインターフェイスさえきちんと守れば、最初からバグも出ないのです。
では、どうやってユーザーインターフェイスを知ればよいかといえば、次の本を買って読むしかありません。
注:
1999年初頭現在、残念ながらこの本は絶版になっている模様です。これに代わるものとして、
「ユーザーインターフェイスデザイン」(Alan Cooper著 テクニカルコア訳 翔泳社発行 ISBN4-88135-368-3)
をオススメしておきます。筆者のAlan CooperはVisual Basicのオリジナルを作った人物であり、この本も現実的という意味では
上記の本よりよくできています。
また、英語でもかまわないのであれば、VisualStudio付属のMSDNに「Windowsユーザーインターフェイスデザインガイド」の
オンラインドキュメントがあります。場所は、Specifications/ Platforms/ Windows interface Guidelines for Software Design です。
これを読んで、はじめてあなたもWindowsプログラミングに参加することが認められると思ってください。
もちろん、このほかにもVisual Basicを知るためにはいろいろな情報が必要です。では、どんな本を買えばよいでしょうか?
いいえ、さしあたって先ほどの本以外にVisual Basicの本は買う必要はありません。なぜなら、あなたが正式なVisual Basicユーザーならば、
すべて書いてあるものを持っているからです。それは、Visual Basicのマニュアルとオンラインヘルプです。
Visual Basic のヘルプはたいへんよくできています。もちろん、うそや間違いもありますが、そんなことはためしてみれば分かることです。
Visual Basicのビギナーがよくひっかかるのは、「Visual Basicはプロパティウィンドウでプロパティを知ることができるので、
カンタンだ」というワナです。実際にはプロパティウィンドウに出てこないプロパティもありますし、メソッドやイベントなどを使いこなすためには、
プロパティウィンドウだけで足りるわけがありません。
こんなときにはオンラインヘルプです。今使っているコントロールにフォーカスを合わせてから[F1]キーを押せば、そのコントロールの説明が出ます。
そこからプロパティ、イベント、メソッドなどを知ることができます。さらにはサンプルプログラムも入っています。
最初は、ざっとヘルプに一通り目を通しながら、いろいろと実験をしてみましょう。
実験して動きを確かめることが、上達への第一歩です。
Windowsからはじめよう
もし、あなたが本当にWindowsプログラミングを極めようとするならば、Visual Basicだけの世界にとどまっていてはいけません。
むしろ、Visual Basic以外のとっつきにくい言語を使って、Windowsの基本的な動きを知るべきです。
あなたが作ろうとしているのは、Visual Basic のアプリケーションではなく、Windowsアプリケーションのハズです。
WindowsはマルチタスクOSです。同時に複数のプログラムが動くためには、中ではどのような動きになっているかを知らないと、的はすれな
プログラムを作ってしまうでしょう。Windowsの内部動作を知っていれば、Visual Basicで無茶なプログラムを書くことも減るはずです。
そして、Visual Basicを効果的に使う方法も見えてくるでしょう。
これらを知るには、VisualC++などのツールを使って、Cだけを使ってプログラミングすることをお勧めします。
Cでのソフトウェア開発はたいへん面倒です。膨大な数のメッセージやAPI関数を前に、途方に暮れてしまうことでしょう。
しかし、全部を覚える必要はないのです。ちょっとだけ基本的なメッセージとAPIを使って、ごくプログラムを作ってみてください。Windowsの内部動作がよくわかってくるハズです。
このときに一番参考になるのは、SDK(Software Development Kit)です。VisualC++にはSDKが含まれています。最近のものは英語のままになっているものが多く、
かなり難儀するかもしれません。ことによったら、16bit Windows (3.1など)の C の入門書などを読んだ方がよいかもしれません。
ただし、Windows 95(の一部)やWindows NTは32bitですので、次のような書籍を参考にするとよいでしょう。
ADVANCED Windows
INSIDE WINDOWS 95
ADVANCED Windows NT
INSIDE WINDOWS NT
当然のことですが、Cでプログラミングしてみれば、Windows APIをVisual Basicから使うときにもヘンな間違いをしなくなります。
また、Visual Basicだけではできないことも、APIを使って解決するだけでなく、CでDLLを作って呼び出すなどの解決法も可能になります。
問題は、このノウハウがたまってくると、何でもWindows APIで解決しようとすることです。
Visual Basicで作る意味がないほど、Windows APIだらけのプログラミングになってしまったり、
Visual Basicだけでできることすら、Windows APIを使ってしまうようになります。
しかし、一度はそこまで行かなくては、Visual Basic も使いこなしているとは言えません。
適材適所で使うためにも、一度 CでのWindowsプログラミングに挑戦してみましょう。
コントロールやツールは買おう
Visual Basicの美点は、エントリーがしやすく、Windows APIによる拡張ができることがあげられます。しかし、もっと手軽に拡張するための手段として
ActiveXコントロール(OCX)を利用する方法があります。
ActiveXコントロールは、OLEベースのカスタムコントロールと呼ばれるものです。すでにおなじみでしょうが、Visual Basicに内蔵されていない
外部にあるコントロールを、部品として使うことができるのです。
Visual Basic自体にも、多くのカスタムコントロールが附属してきます。そのためここで重大な過ちをすることが多いのです。
それは、Visual Basicについてきたカスタムコントロールで仕事に使うプログラムを作ろうとすることです。
実は、Visual Basic附属のコントロールの多くは、サードパーティ製品のサブセットです。プロパティウィンドウで[About]を選んでみれば、どこの製品か
わかります。これは言わば、「だいたいこんなもんなので便利なのは分かるでしょう。
もっと機能が豊富で仕事にもちゃんと使えるレベルのものは売っているから、ちゃんと買ってね」ということなのです。
実際、オマケでついてきたカスタムコントロールは機能不足だったり、バグが多かったりで、使い物にならないものが多いのです。
きちんと、サポートのある製品を買いましょう。いいですか? ここでケチってはいけません。
たかだか数万円で買えるものと同等の機能や性能を出すものを作るのに、いったいどれくらいの時間と労力がかかると思いますか?
この手のものは、作るより買う方が得策なのです。
Visual Basicの印刷機能は貧弱です。付属のCrystalReportsはオマケですから、あまりアテにしてはいけません。
しかし、もちろん、印刷機能を拡張するようなツールもあります。
探してみれば、目的にあったコントロールやツールは結構あるものです。使い道や評判を調べ、目的に合ったものを探しましょう。
PCDNの次のURLでは、Visual Basic関連ツールを紹介しています。また、PCDNの News Groupで聞けば、製品の評判も知ることができるでしょう。
VisualBasic関連Applications & Tools 一覧
また、これらの製品のうち、かなりものはPCDNの協賛企業 優待販売で、秋葉原並みの価格で購入することができます。
情報収集にお金をかけよう
Visual Basic についてすべてを知ろうということは、さらにWindowsについてすべてを知ろうということになり、際限なくなってきます。
そして、それに関わる情報も際限なく多くなってきます。しかし、本当に有用な情報はそんなにあちこちにあるものではありません。
あるところは決まっています。しかし、有益な情報を得るにはお金がかかります。かからないのは今ご覧になっているPCDNの無料コンテンツのようなところだけです。
あちこち探し回って無駄に時間を使うより、適切なところにお金をかけましょう。それが、結局は安上がりなのです。
また、各トピックごとに、Microsoft Press (日本語版はアスキーが主に発行している)の本が出ています。次に代表的なものをあげておきます。
Visual Basicを使った開発をするための、ごく基本的なことを書いてきました。
「そんなことは今知りたいことじゃない。あれはどうやったらいいの?」
とお考えの方もいらっしゃると思います。しかし、答えはすべてこのページからリンクしているのです。
さあ、あなたも本当のVisual Basicを知るために、準備を整えましょう。