none
VB6で作成したプロジェクトを2010で作り直す効率の良い方法は有りますか RRS feed

  • 質問

  • VB6で作成したプログラムをXP上で使用していたのですがWindows7上ではうまく動作しないものがあります。VB2010などを使用してWindows7上で動くようにデバッグする方法は有りますか。VB6のプロジェクトはソースリストがあります。初心者で最近VB2010EXPを勉強し始めたのでよろしくお願いします。
    2014年8月17日 16:41

回答

  • VB6のプログラムはVB6を使用してのデバッグ実行以外ではソースコードに対応したデバッグを行うことはできないので、VB2010Expressでソースコードデバッグする方法はありません。
    VB6を持っていない場合はMSDNサブスクリプションではまだ入手可能です。

    VB.NETに変換する前にVB6でのCode Advisor for Visual Basic 6.0というアドインを使うとチェックが行えるので、指摘された個所を修正しておくとアップグレード後の修正量が減らせます。

    VB2010ではできなくなっていますが、VB6のプロジェクトをVB.NetのプロジェクトにアップグレードするのはVB 2008 ExpressでVB6のプロジェクトファイル(vbp)を開くだけで行えます。(VB6で参照しているCOMやランタイムが入っていないPCでやると失敗しますが)
    そして、変換できなかった部分や修正が必要な個所がレポートという形で表示されます。アップグレードで済ませるなら、そのレポートにしたがってコンパイルが通るように一つずつコードを修正作業を行っていくことになります。
    また、VB.Netではなくなってしまった機能がある場合はどうやってもアップグレードできない場合があります。

    Windows7では一応VB6ランタイムの動作はサポートされているので、VB6だから動かないのではなく、ほとんどの場合でセキュリティの変更に対応できていないことです。たいてい引っかかるのはWindowsのセキュリティが強化されたことによるファイルを読み書きやレジストリの箇所なので、これを一般のユーザー権限でも読み書きできるようにする必要はがあるでしょう。

    そのほかにVB6からの変換に関する事項はVisual Basic 6.0 からのアップグレードをよく読んでください。

    ほとんど同じものを作り直すのであればVB2008経由で変換するのが効率はいいですが、ロジックを参照する程度にして丸ごと作り直した方が楽だったしします。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 編集済み gekkaMVP 2014年8月18日 10:46
    • 回答としてマーク yume_2205 2014年8月20日 17:00
    2014年8月18日 10:42
  • >VB2010などを使用してWindows7上で動くようにデバッグする方法は有りますか。

    gekkaさんも書かれていますが、ありません。それどころか、Windows 7上ではVB6.0 IDEの動作も保証されていません。よって、Windows 7上でVB6.0の開発は保障されません。

    開発ツール対応 OS 一覧
    http://www.microsoft.com/ja-jp/dev/support/tools.aspx

    Windows 7上で動かない場合でも、対処すれば動作することがありますので、以下などの情報を参考にしてトライされてみると良いと思います。

    VB6.0 をWindows 7/8 上で使用した場合の不具合(VB6.0)
    http://www.hanatyan.sakura.ne.jp/patio/read.cgi?no=272

    サードパーティ製のOCXを使っているなど、打つ手が無くなってどうしても動かない場合は、.NETへのマイグレーションになります。マイグレーションに関しては、以下が参考になります。

    Microsoft の VB マイグレーションセンター
    http://www.microsoft.com/ja-jp/dev/vbrun/default.aspx

    いずれにしても最終的には.NETへのマイグレーションになると思いますので、.NETを勉強され、VB2008 Expressの変換機能に頼らずに、一から開発されるのがベストです。ただ、VB2008 Expressが変換した結果は参考になると思いますので、そこは盗めば良いと思います。
    ちなみにVB2010 Expressを勉強されているようですが、VB2010のメインストリームのサポートは来年の7月15日で終了します。特に理由が無いのであれば、最新のVisual Studio Express 2013 for Windows Desktopを使用されてみてはいかがでしょうか?

    Visual Studio Express
    http://www.visualstudio.com/ja-jp/products/visual-studio-express-vs.aspx


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク yume_2205 2014年8月20日 17:00
    2014年8月19日 2:53
    モデレータ

すべての返信

  • VB6のプログラムはVB6を使用してのデバッグ実行以外ではソースコードに対応したデバッグを行うことはできないので、VB2010Expressでソースコードデバッグする方法はありません。
    VB6を持っていない場合はMSDNサブスクリプションではまだ入手可能です。

    VB.NETに変換する前にVB6でのCode Advisor for Visual Basic 6.0というアドインを使うとチェックが行えるので、指摘された個所を修正しておくとアップグレード後の修正量が減らせます。

    VB2010ではできなくなっていますが、VB6のプロジェクトをVB.NetのプロジェクトにアップグレードするのはVB 2008 ExpressでVB6のプロジェクトファイル(vbp)を開くだけで行えます。(VB6で参照しているCOMやランタイムが入っていないPCでやると失敗しますが)
    そして、変換できなかった部分や修正が必要な個所がレポートという形で表示されます。アップグレードで済ませるなら、そのレポートにしたがってコンパイルが通るように一つずつコードを修正作業を行っていくことになります。
    また、VB.Netではなくなってしまった機能がある場合はどうやってもアップグレードできない場合があります。

    Windows7では一応VB6ランタイムの動作はサポートされているので、VB6だから動かないのではなく、ほとんどの場合でセキュリティの変更に対応できていないことです。たいてい引っかかるのはWindowsのセキュリティが強化されたことによるファイルを読み書きやレジストリの箇所なので、これを一般のユーザー権限でも読み書きできるようにする必要はがあるでしょう。

    そのほかにVB6からの変換に関する事項はVisual Basic 6.0 からのアップグレードをよく読んでください。

    ほとんど同じものを作り直すのであればVB2008経由で変換するのが効率はいいですが、ロジックを参照する程度にして丸ごと作り直した方が楽だったしします。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 編集済み gekkaMVP 2014年8月18日 10:46
    • 回答としてマーク yume_2205 2014年8月20日 17:00
    2014年8月18日 10:42
  • >VB2010などを使用してWindows7上で動くようにデバッグする方法は有りますか。

    gekkaさんも書かれていますが、ありません。それどころか、Windows 7上ではVB6.0 IDEの動作も保証されていません。よって、Windows 7上でVB6.0の開発は保障されません。

    開発ツール対応 OS 一覧
    http://www.microsoft.com/ja-jp/dev/support/tools.aspx

    Windows 7上で動かない場合でも、対処すれば動作することがありますので、以下などの情報を参考にしてトライされてみると良いと思います。

    VB6.0 をWindows 7/8 上で使用した場合の不具合(VB6.0)
    http://www.hanatyan.sakura.ne.jp/patio/read.cgi?no=272

    サードパーティ製のOCXを使っているなど、打つ手が無くなってどうしても動かない場合は、.NETへのマイグレーションになります。マイグレーションに関しては、以下が参考になります。

    Microsoft の VB マイグレーションセンター
    http://www.microsoft.com/ja-jp/dev/vbrun/default.aspx

    いずれにしても最終的には.NETへのマイグレーションになると思いますので、.NETを勉強され、VB2008 Expressの変換機能に頼らずに、一から開発されるのがベストです。ただ、VB2008 Expressが変換した結果は参考になると思いますので、そこは盗めば良いと思います。
    ちなみにVB2010 Expressを勉強されているようですが、VB2010のメインストリームのサポートは来年の7月15日で終了します。特に理由が無いのであれば、最新のVisual Studio Express 2013 for Windows Desktopを使用されてみてはいかがでしょうか?

    Visual Studio Express
    http://www.visualstudio.com/ja-jp/products/visual-studio-express-vs.aspx


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク yume_2205 2014年8月20日 17:00
    2014年8月19日 2:53
    モデレータ
  • gekkaさん、ありがとう。

    自分の専門分野の技術検討のためExcellではちょっと面倒という程度の仕事をVBを利用して作成してきました。VB6どころかVBでもよい程度のプログラムのためVB.NETも購入したのですがVB6のまま現在に至っています。フォーラムもはじめてで作法もよくわかっていませんが今後ともよろしくお願いします。

    幸い自作が趣味でWindowsXP、Vista、7、8.1、が使えるのでVS2008を手に入れて勉強してみます。

    yume_2205

    2014年8月20日 16:45
  • trapemiyaさん、ありがとう。

    VB6を7で動かしたり、VB2008Expressを試したり、いま取り急ぎ使いたい過去の遺産を使えるようにした後.NETの勉強をすることにしました。

    yume_2205

    2014年8月20日 17:00