レガシー・マイグレーションのノウハウ&ドゥハウ。 計画時サービスからメインサービスまでシステムズの業務をご案内。

システムズのマイグレーションコラム

Vol.19 VB製アプリケーション移行の注意点 (その1)

2017.08.25

マイクロソフトによるサポートが終了したWindows OSのアップグレードにより、製品サポートがすでに終了しているVisualBasic6.0(VB6.0)で開発されたアプリケーションをそのまま継続して使うことは極めて困難になっています。VB6.0からVB.NET 2010 以降へのアップグレードを例に、移行の際の注意点を紹介します。

二段階のアップグレードが必要

企業内にはVB6.0で開発されたシステムやアプリケーションが多数存在しますが、これらを使い続けようとすると、とっくにサポートの切れたOSを使い続けなければならず、企業のVB6.0のアプリ資産は大きな危機にさらされていると言えるでしょう。VB6.0の後継のIDE製品として登場した Visual Basic .NET(通称:VB.NET)は、言語仕様の大幅な改訂のために、VB6.0との互換性はほとんど無くなっています。そのためマイクロソフトは、旧VB製アプリケーションのVB.NETへの移行を容易にするアップグレードウィザードを、Visual Studio 2008までは実装してきました。2017年の現在、VB.NETは、IDE製品であるVisual Studio 2017が最新版となっていますが、VB6.0製アプリケーションを、VB.NET 2010 以降、最新の2017へ直接アップグレードウィザードを活用した移行はできません。

そのため、VB6.0からのアップグレードは、直接はVB.NET 2008までしか行えず、VB.NET 2010から最新版の2017にアップグレードするには、いったんVB.NET 2003〜2008にアップグレードした上でVB.NETからVB.NETへという段階的なアップグレードを実行する必要があります(図)。

二段階のアップグレード

VB6.0のプログラムには、共通プログラム群が用意されています。基本的には、VB6.0のプログラムをVB.NETで開くと自動的にアップグレードウィザードが起動してアップグレード変換をしてくれますが、VB6.0とVB.NETの共通プログラム群は仕様が異なります。そのため、手動で修正しなくてはならないエラーが多く発見されます。ゼロ除算など、単体のテストでは見つからないエラーもあり、アップグレードウィザードに依存した移行作業には、膨大な手作業や手戻りのリスクが付きものです。

サードパーティ製品の移行はどうする?

もう1つ大きな問題が、SPREADやActiveReportsなど、帳票系や入力支援などのサードパーティ製品を旧VB製品と一緒に実装して開発しているアプリケーションの継続利用です。NET Framework1.0や1.1で作られたバージョンのものは上位のバージョンでは使えなくなるため、このあたりのサードパーティ製品も上位のものにバージョンアップさせていく必要があります。現在サポートが継続されているWindows OSではサードパーティ製品のライブラリの動作はサポートされておらず、当然、アップグレードウィザードを使用してもサードパーティ製品については自動的に変換してくれません。

次回のコラムでは、これについてもう少し詳しく見ていきましょう。(次回のコラムに続く)

コラム一覧へ戻る
pagetop