VB6といえばもうかれこれ10年、20年ぐらい前に.NET Frameworkへの移行にともなって廃れてゆきました。
代わりに主流となるべく脚光を浴びたVB.NETも今は昔。
C#が主流となっていますね。
そんな状況下でも未だに現役バリバリで稼働しているVB6で組まれたシステムが数多く存在しています。
VB6は死んだ言語?
VB6のコードをぐぐってみると、案外と沢山の検索結果が出てきます。
これは当時からの蓄積はもちろんのこと、未だに稼働中のVB6システムのトラブルを知恵袋で質問しているものがヒットする、というのも多いです。
また、VB6のコードはVBAのコードとほとんど同じなのでVBAの検索に芋づる式に引っかかってくることも多いようです。
WordのVBAはあまり聞きませんが、ExcelのVBAなんてのは未だにちょいとしたシステム化、ちょいプロを組む時には今でも重宝されているのではないでしょうか。
本題にもどりますが、VB6はすでにマイクロソフトさんが切り離したくて仕方がない言語と言って問題ないでしょう。
各社のシステム担当さんたちもそう思っているのではないでしょうかね。
それでも延命させたい人達の圧力
もう限界のところまで来ているのに、システムをリプレースする予算がない、または
偉い人「リプレースするのはお金かかるからいいじゃん延命で、今までも出来てたんだし」
という鶴の一声というにはあまりにも美しくない一声に泣いている人達もいることでしょう。
そこでしかたなくなのかなんなのか、マイクロソフトさんもWindows7までは動作を『一応』サポートしてくれています。
MS「ランタイムを入れればVB6のアプリケーションは動きますよー」
MS「でも早く移行してね・・・」
と。
そして開発者を悩ませる問題はOSの問題も去ることながら32bit環境と64bit環境の問題もあります。
めんどくさいですね。
Windows7 64bit環境でも開発はできるけど・・・
今のところWindows7であれば64bit環境でもvisual studioのVB6をインストールしてVB6の開発をすることが出来ます。
Windows10ではどうなんでしょうね・・・。
ちなみにですが、Windows7でVB6を開発しようとすると、様々なトラブルが発生する危険があります。
まずは権限の問題。
開発する時は管理者権限ユーザで開発した方がよいです。絶対。
そして今回言いたかったことがこれです。
「MSCOMCTL.OCXが見つかりません」
「オブジェクト ライブラリは登録されていません」
なんじゃこりゃと。
これはVB6に標準で付属していActiveX コントロールのコンポーネントが詰まったファイルです。
何度コンポーネントの登録をしてもエラーが出る。
ファイルはちゃんとあるのに認識しない。
どうもこれは、Windows Updateのある更新以後から発生する現象のようです。
脆弱性を補うために封殺された類の現象みたいですね。
対処法・回避策はいくつかあるようで、かならずうまくいくとは限らないようなので、色々試すしかなさそうですね。
対策1、VB6とサービスパックの再インストール。
勿論サービスパックは最新の。
困ったら再インストールというやつです。
対策2、レジストリの再登録。
なぜレジストリの再登録がいるのかがよくわからないです。
visual studioでファイルパスも指定してるのになんでレジストリが出てくるのか。
しかし、ワイはこの方法でうまくいきました。
コマンドの情報やらなんやらは持って帰って来れなかったのでまた機会があれば追記します。
しかばね一葉