VisualBasic6

最近久々にVB6を使う事になったので色々とメモ。

開発環境のエディタは使いにくい。慣れもあるけれど。色も自由に設定出来ないし。BeginとEndの対応をとってカーソル移動とか出来ないのかなぁ?
あと開発環境内でGREP出来ないのが厳しい。でもAddInがある。
http://www.vector.co.jp/soft/win95/prog/se140241.html

国際化対応をしようと思ったら、FormのFontで英語Fontが選択できない。
Microsoft Visual Basic 6.0 International Package and Deployment Kit というのを使うとインストーラーとかフォームのフォントとかを英語用に切り替える事が出来るらしいけれど、Microsoftのサイトから入手が出来なくなってる。わざわざ作ったもの捨てる事無いのになぁ。
http://support.microsoft.com/kb/236404/en-us
と思ったら、サーバー上にはまだあるみたいだ。
http://hanatyan.sakura.ne.jp/vb60bbs/wforum.cgi?no=14402&reno=14396&oya=14395&mode=msgview&page=0
http://download.microsoft.com/download/vb60ent/ipdkeng/6.0/W9XNT4/EN-US/ipdk.exe
あとVista以降なら日本語言語パックを実行環境でInstallしてもらえればMS ゴシックのフォントも表示できるかな?

FormのControlは標準だとANSIベースになっててUnicode文字列のも用意されてるみたいだけど部品のCOMが再配布が自由に出来ないみたいだ。
http://support.microsoft.com/kb/193540/en-us
http://support.microsoft.com/kb/224305/en-us

VB6はFormの編集はVC++Windowsアプリのダイアログエディタに比べるとやり易い。ControlのGridの見た目がフォームエディタ上で確認出来るのはなんだか幸せだ。でもVBって部品が外部ファイルのCOMに依存しちゃってて配布がちょっとややこしいかな。。あと今の.NETの方が機能的には断然進んでいるけれど、ランタイムはリッチすぎるし、実行環境の制限とか、起動や実行速度の遅さとか、開発環境の重さとか、苦しい点も多いのは事実。まぁ新しいのを作るなら.NETベースにした方が良いと思うけれど、Windows.Formsも先は無いし。

TabのControlがあるんだけど、TabPageの削除を自由に出来ないのが使いにくい。frmファイルを手で編集してしまえば良いけれど、、FormEditorでControlの範囲選択とかも出来ないし、ちょっと使いづらいなぁ。。TabIndexの設定をGUIで出来なくて1個1個プロパティで設定するのは面倒だと思ったので何か手段が無いか探したところ、MZ-Toolsというのがあってそれで楽に出来た。昔は知らなかったかも。
http://www.mztools.com/index.aspx

VB6のコントロール配列は場合によっては便利な存在だとは思うけど、複数のコントロールのイベントを1つの関数内に全部書かれたりしている。場合によっては乱用に見えてしまうから分けた方が良いと思う。1個1個名前を付けるのは面倒くさいというのも分からなくも無いからケースバイケースかもしれないけど。

あとVB6の場合、変数の宣言と同時に代入が出来ないのが億劫。言語仕様の微妙なところはキリが無いけれど。Microsoftが.NET出す前にVisualBasic7.0を作ってれば結構幸せな事も多かっただろうに。MSX3を出さないで3DOを出してしまったPanasonicと同じような目にMicrosoftも合ってしまったんだろうか?いや、、3DOと.NETを同列に扱うのはさすがに.NETに失礼かもしれない。

コードを書くのはソフトを作るのが目的だから、コードのまとまりとか綺麗さも重要だけど生産性も必要だ。手書きのコードでデータを用意するのは億劫な面もあるので、ツールを使ったり、Generative Programmingをしないと効率が良くない。そういう意味じゃ前時代の存在だけれどVB6ってのはそこそこバランス取れてるのかも。まだ使ってる人いるし。