• ベストアンサー

VB5.0のocx?について

知り合いに聞かれたことなのですが、 VB5.0の開発環境のあるPCについて、 Windows2000からWindowsXPにOSを入れ替えたそうです。 そうしたところ、 VBのダイアログボックスだけがバージョンアップされてしまった、 ということで、 それだけ元のバージョンに戻すのはどうしたらよいでしょうか? ちなみにVB6.0にコンバージョンするとなると、 割と手がかかりそうなので、 ひとまずはVB5.0のままでいくようです。 VB5.0のランタイムをインストールするとか、 どうにかしてocxを入れ替えたらよいのかな? と思うのですが、 最適な対処法がよくわかりません。 ご存知の方がいらっしゃったら、よいと思われる対処法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.4

コモンダイアログですか、ダイアログと書いていたのでてっきりフォームの意味ではないかと思いました。 そのプラグラムのプロジェクト(VBP)を開いて、VBのメニュー、[プロジェクト]内から[コンポーネント]を選択します。 インストールされているコンポーネントの一覧から、 [Microsoft Common Dialog Control]を探します。 おそらく現在 [Microsoft Common Dialog Control 5.0] [Microsoft Common Dialog Control 6.0] と二つ並んでいて、6.0の方にチェックが入っている状態ではないかと思います。 6.0はVB6のためのコンポーネントで、それを指定したため開発ライセンスがないという事で、使用を拒否されているということだと思います。 VB6を購入、インストールしていないのに、なぜVB6のコンポーネントがインストールされているかと言えば、フリーソフト(とは限りませんが)などでVB6で開発したアプリケーションをインストールした際に一緒にインストールしたためでしょうね。(もしくは、XPには最初から一部のVB6コンポーネントが登録されているのかも知れません) インストールはされていても、開発ライセンスがないために、リストには表示されるが開発作業に使用できない状態、なのにそれを使用しようとしているということでしょう。 たぶん[Microsoft Common Dialog Control 5.0]に変更することで解決です。 とはいえ、これって仕事で作成しているプログラムじゃないですよね?趣味であっても、完成したプログラムを公開・配布を考えているなら、少々怖いですね。 もし、CommonDialog6.0で開発できていたと仮定すると、開発ライセンスがない=配布ライセンスもない=公開・配布する際には違法配布になってしまう。 同じような事が、他のDLLやOCXで発生しているかも知れません。

musashi228
質問者

お礼

ご回答ありがとうございます。 確かXPに最初から登録されていたんだと思います。 対処法を教えてみますね。 このプログラムですが、 知人自身が業務上の事務処理に使用しています。 販売、公開、配布などをすることはありません。 念のため、ライセンスについての注意もしておこうと思います。

その他の回答 (3)

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.3

作成したプログラムのフォームの、アイコンやタイトル、最大化/最小化ボタンが表示される部分、およびウィンドウの枠がXPのウィンドウと同じ外見になってしまっている。 フォームの中身(ボタンなど)は以前と変わっていない、という事を言いたいのでしょうか? もし上記で合っているとすると、最終的に得たい結果によって何をするかが異なります。 1)ウィンドウ枠のみではなく、中身もXP仕様に変更したい。 2さんの言うように、マニフェストファイルを作る事で対応できます。 http://support.microsoft.com/kb/309366/ja リンクはVB6の例ですが、VB5でも若干の修正で対応できます。 2)Win2000の頃と同様な、開発環境画面に戻したい。(実行環境はどうでもいい) XPのヴィジュアルスタイルを無効にします(Windowsクラシックを選択します) 3)開発環境、実行環境とも、Win2000の頃と同様な画面に戻したい。 不可能です。 あえて言えば、フォームのBorderStyleをなしに設定して、ウィンドウ操作系の機能をすべて自作することで、ごまかす方法が考えられますが。 これはフォームの外枠(タイトルバーなどの部分)はOSが管理し、描画している領域だからです。 OS寄りの用語で言うと、ウィンドウ領域と言われることが多いですかね(ノンクライアント領域と言われることもあるようですね)。 ボタンなどを配置する領域は、クライアント領域と言います。(form1.InnerWidth,Form1.InnerHeightなどで取得できる、フォーム内部の事です) 質問の意図を外していたら、申し訳ない。

musashi228
質問者

お礼

ご回答ありがとうございます。 質問を受けた知り合いに詳しく確認したところ、 VB5.0にてプログラムを製造しようとしたときに、 コモンダイアログがフォームに貼り付けられない という現象だったようです。 (そこでバージョンを確認したところ6.0になっていたらしいです。) ocxはレジストリに登録してあるから変更は難しそう、 とのことで、 動作保障もされていないししょうがないか、 という話になっております。 質問がアバウトでわかりにくく、すみませんでした。 外観に関する問題ではありませんでしたが、 マニフェストファイルのことを知らなかったので、 大変勉強になりました。 ありがとうございました。

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.2

OSのAPIを使用してダイアログを使用しているからではないでしょうか? いっそ外観すべてをXPスタイルにしてみてはどうでしょうか? マニフェストファイルを作るだけですのでさほど難しくはないはずです。 http://hanatyan.sakura.ne.jp/index.html を参考になさってみてください。 OCXはSystemのフォルダに追加すればたいていは動くと思いますが、保障はできません。

musashi228
質問者

お礼

ご回答ありがとうございました。 外観についてではなく、開発時に使用できない ということだったようです。 参考URLなど、ありがとうございます。 勉強になりました。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

VB5自体 WinXPでの動作保証がありませんがその点は大丈夫なのでしょうか? http://www.microsoft.com/japan/msdn/vstudio/support/tools.aspx まぁ Win2000でも動作保障していないようですけど ・・・ OS付属のコントロールだと不具合が出そうですが・・・ 具体的にどのようなコントロールなのでしょう

musashi228
質問者

お礼

ご回答ありがとうございます。 コントロールはコモンダイアログでした。 動作保障していないためか、対処は無理そうです…。 参考URL、ありがとうございました。

関連するQ&A