本記事は、2007/11/19にリリースされた、VisualStudio2008 Express Editionを用いて、VisualBasic6.0のアプリケーションを VisualBasic.NET にコンバートする方法の一つとして、アップグレードウィザードの使い方をまとめたものです。
誰でも簡単に試すことができるよう、Express Editionを使用していますが、上位Editionでも同様のことができます。
まず、VisualBasic.NET の動作環境を構築します。
Express Editionsは無料で使うことができるため、試してみようという方はこちらがお勧めです。
インストール方法はこちら
尚、コンバート自体でVisualBasic6.0は不要ですが、ある程度の規模のアプリケーションであれば、VB6.0で修正した方が早いものもありますので、念のために用意しておいた方がよいかもしれません。
VisualBasic6.0で作成されたプロジェクトを用意します。
6.0以前のバージョンで作成されている場合は、6.0に付属しているマイグレーションツールを使用し、6.0にアップグレードしておく必要があります。
VB6.0のアプリケーションで使用している、ActiveXコントロールをインストールしておきます。
インストールしておかないと、途中でコンバートが中断されてしまいます。

VisualBasic6.0で作成されたプロジェクトを選択します。

VisualBasicアップグレードウィザードが自動的に起動します。

コンポーネントがインストールされていないと、このようなエラーダイアログが表示されます。
コンポーネントのインストール後、初めからやり直しになります。

アップグレードが終了したところです。アップグレードの結果は_UpgradeReport.htmというファイルに書き出されます。

アップグレードウィザードも完璧ではなく、ビルドしてみると結構エラーが発生します。
アップグレードされたコードを修正するか、VisualBasic6.0のコードを修正し、再度アップグレードするかはエラーの種類によって異なります。
このプロジェクトの場合、Win32APIを多用している関係のエラーが多く出ているため、アップグレードされたコードを修正する方が良いです。

ご覧のとおり、フォームも大分崩れています。
フォントサイズや、コントロールの位置など、必要に応じて手修正する必要があります。

ソースコードです。このプロジェクトは単純な造りのため、ほぼ原型となっていますが、プロジェクトによってはほとんど使えない状況の場合もあります。
アップグレードウィザードは簡単にコンバートできるものの、実際に動作する状態にするためには手作業で修正を加える必要があります。
特に、.NETへのコンバートすることができないコントロール、Win32API、データベースアクセスに関する処理を多用している場合は、それなりの技術力と作業工数が掛かることが多く、アップグレードウィザードだけでコンバートできるケースは少ないでしょう。
ある程度の規模の場合、コンバートしたコードを参考にして、新たに作り直してしまった方が早いケースもあります。
当事務所では、旧VisualBasicで作成された資産を有効活用したいお客様向けに、VisualBasic6.0から .NETへのコンバートサービスも行っていますので、ご気軽にご相談ください。