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

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

【3分解説】VB6.0は早めにVB.NETに移行しよう

1998年に登場した「VB 6.0」で開発したアプリシステムを今でも利用している企業は少なくありません。
一方で開発言語としてのVBのサポートは、2008年に終了しており、いつまで使い続けられるかわからない状況です。
今後保守・メンテナンスをしていく上で問題があるだけでなく、セキュリティ面はもちろん開発要員の確保の面から考えても、今後VB6.0アプリシステムを使い続けるのは厳しい状況にきているのは間違いありません。
そこで本動画では、VB6.0を使い続けることのリスクや移行の際の課題についてまとめ、スムーズな移行について考えます。

Vol.19 VB6製アプリケーション移行の注意点 (その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との互換性はほとんど無くなっています。そのためマイクロソフトは、旧VB6製アプリケーションの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など、帳票系や入力支援などのサードパーティ製品を旧VB6製品と一緒に実装して開発しているアプリケーションの継続利用です。NET Framework1.0や1.1で作られたバージョンのものは上位のバージョンでは使えなくなるため、このあたりのサードパーティ製品も上位のものにバージョンアップさせていく必要があります。現在サポートが継続されているWindows OSではサードパーティ製品のライブラリの動作はサポートされておらず、当然、アップグレードウィザードを使用してもサードパーティ製品については自動的に変換してくれません。

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

↓↓ システムズのVBマイグレーションに関する、Webページはこちらをご覧ください ↓↓

【 Windowsレガシーモダナイゼーション|VBマイグレーション 】

コラム一覧へ戻る
pagetop