質問: vb6のプロジェクトロードエラーについて 現在、vb6で作られたプログラムを開いて、編集を行おうとしているのですが、 プロジェクトのロード段階でエラーが出ます。 そのエラーの内容ですが、 「行 372: クラス mscomctllib.statusbar(コントロール sbmes) はロードされていません。」となっています。 それで、mscomctlがコンポーネントにないからか、と思い、 コンポーネントの一覧で「microsoft windows common controls 6.0(sp6)」にチェックを入れて、 適用ボタンを押すと、「オブジェクトライブラリは登録されていません」とエラーが表示されます。 なお、それは新規プロジェクトで上コンポーネントを登録しようとしたときも表示されました。 vb6は入れたばかりで、 一度アンインストールしてインストールをしなおしたりとしています。 ですが、そのエラーが出続けて、pgの変更ができません。 どうすればいいかご存知のかた、ご教授お願いいたします。
回答: ご質問から時間がたっているのでもう解決したかもしれませんが、今までの経験から回答します。 1 mscomctl.ocxというファイルがどこにありますか (1) win7(32bit),xp場合 sp6であれば (cドライブ=システムドライブとして) c:\windows\system32 にありますが、ご質問のようにアンインストールやインストールの際にレジストリが壊れている可能性があります。また、その場所になければ最新のファイルを入手して上記のフォルダに保存します。 (2) win7(64bit)の場合 c:\windows\syswow64にあるはずですが、なければ64bitで使う32bit用の上記ファイルをダウンロードします。ここは、要注意です。32bitで使っていたocxをコピーしてもうまくいかない可能性があります。 64bitマシン用には、c:\windows\system32に同名のocxはありません。 ちなみに、私の最新ファイルバージョンですが、32bitマシン用が6.1.98.34に対して64bitマシンが6.1.98.33です。 なお、このocxは必ずしも上記のフォルダになければならないものではありません。適当なフォルダに入れておいてレジストリに登録すればよいのです。 2 レジストリに登録します。 regsvr32.exeの使い方については、webにいっぱい記述があるので検索してください。二重に登録しても特に問題はありません。一般的には、regsvr32.exeを「ファイル名から実行する」などによりレジストリに登録します。 ただし、windows7は管理者として「スタート」→「アクセサリ」→「コマンドプロンプト」(右クリックして「管理者として実行」)を実行します。 なお、管理者として実行する方法は別にもありますので、検索してください。 3 注意 32bitマシンでvb6のプロジェクトをコピーし、64bitマシンに貼り付けても、mscomctl.ocxを使っている場合はロードエラーになります。対策は下記のurlを参考にしてください。 http://www.hanatyan.sakura.ne.jp/patio/read.cgi?no=272