Visual Basic 6.0 アプリケーションのアップグレードの準備
更新 : 2007 年 11 月
Visual Basic 6.0 アプリケーションを Visual Basic 2008 にアップグレードするプロセスの大部分は自動的に行われますが、多少の準備作業を行うことによって、アップグレードを最適化できます。
ここに示す推奨事項に従うことにより、既存のプロジェクトを Visual Basic 2008 にアップグレードした後に必要な変更作業を最小限に抑えることができます。また、変更作業を完全に回避できる場合もあります。ほとんどの推奨事項では、単に最適なプログラミング方法が紹介されていますが、中には対応するものがないオブジェクトやメソッドが紹介されている場合もあります。既存のプロジェクトを Visual Basic 2008 にアップグレードするときには、これらのオブジェクトおよびメソッドの使用を最小限にする必要があります。
一般的な推奨事項
当たり前のことですが、Visual Basic 6.0 でコンパイルして実行するプロジェクトでない場合は正常にアップグレードできません。アップグレードに使用するコンピュータ上に Visual Basic 6.0 をインストールしておくことをお勧めします。これにより、アプリケーションをテストできるだけでなく、必要なコントロール、コンポーネント、およびタイプ ライブラリがアップグレード時にすべて使用できるようになります。
Visual Basic 2008 では、Visual Basic 6.0 プロジェクトだけをアップグレードできます。Visual Basic Version 1 ~ 5 で記述されたプロジェクトの場合は、まずプロジェクトを Visual Basic 6.0 に読み込み (Microsoft ActiveX コントロールのアップグレードを選択)、コンパイルおよび保存してから Visual Basic 2008 にアップグレードします。
フォームおよびコントロールに関する注意事項
Visual Basic 2008 では、Windows フォームという新しいフォーム パッケージを使用します。Windows フォームは、Visual Basic 6.0 のフォーム パッケージとの互換性がありますが、次のような重要な違いもあります。
Visual Basic 2008 は、OLE コンテナ コントロールをサポートしていません。Visual Basic 6.0 アプリケーションではこのコントロールの使用を避けてください。
Visual Basic 2008 には、シェイプ コントロールはありません。正方形および長方形はラベルにアップグレードされますが、楕円および円はアップグレードできません。アプリケーションでこれらの形状を使用することは避けてください。
Visual Basic 2008 には、ライン コントロールはありません。縦および横のラインはラベルにアップグレードされます。斜めのラインはアップグレードされないため、使用を避けてください。
Visual Basic 2008 には、Form の Circle、CLS、PSet、Line、および Point の各メソッドに代わる新しいグラフィックス コマンドが用意されています。新しいオブジェクト モデルは Visual Basic 6.0 と大きく異なるため、これらのメソッドはアップグレードできません。
Timer コントロールの Interval プロパティを 0 にしてもタイマは無効にならず、間隔が 1 にリセットされます。Visual Basic 6.0 プロジェクトでは、Interval を 0 に設定する代わりに、Enabled を False に設定してください。
Visual Basic 2008 には MenuStrip と ContextMenuStrip という 2 種類のメニュー コントロールがありますが、Visual Basic 6.0 にはメニュー コントロールが 1 種類しかなく、このコントロールは MainMenu または ContextMenu コントロールとして開きます。すべてのメニュー コントロールは 1 つの MenuStrip コンポーネントにアップグレードされ、その中に各メニュー コントロールに対応する MenuItem が含まれます。アップグレード後にコンテキスト メニューを再度作成し、余分な MenuStrip コントロールを削除する必要があります。
Visual Basic 2008 はダイナミック データ エクスチェンジ (DDE: Dynamic Data Exchange) をサポートしていません。
Visual Basic 2008 は、Form.PrintForm メソッドをサポートしていません。
Visual Basic 2008 はドラッグ アンド ドロップ機能をサポートしていますが、そのオブジェクト モデルは Visual Basic 6.0 の場合と異なります。したがって、Visual Basic 6.0 のドラッグ アンド ドロップに関するプロパティおよびメソッドはアップグレードできません。
Visual Basic 2008 の Clipboard オブジェクト (My.Computer.Clipboard) は拡張されており、Visual Basic 6.0 の Clipboard オブジェクトよりも多くの機能とクリップボード形式をサポートしています。ただし、オブジェクト モデルの違いにより、クリップボード関連のステートメントは自動的にアップグレードできません。
Visual Basic 2008 では、実行時にフォームおよびコントロールの Name プロパティがサポートされません。そのため、Controls コレクションを反復処理して特定の名前のコントロールを探すようなコードを記述しないでください。この機能を使用するには、.NET Framework の System.Reflection クラスを使用します。
データに関する推奨事項
Visual Basic 2008 には、ADO の強化版である ADO.NET が導入されています。これは分散アプリケーションのデータ処理用に最適化されているため、分散アプリケーションで使用すると ADO よりも優れた性能を発揮します。
Visual Basic 2008 のコード内でも、一部修正を加えれば、引き続き RDO と ADO を使用できます。ただし、Visual Basic 2008 では、コントロール、データ コントロール、または RDO ユーザー コネクションに対する DAO および RDO のデータ連結はサポートされていません。アプリケーションに DAO または RDO のデータ連結が含まれる場合は、アプリケーションを Visual Basic 6.0 のままにしておくか、またはプロジェクトを Visual Basic 2008 にアップグレードする前に DAO または RDO のデータ連結を ADO にアップグレードします。ADO のデータ連結は Windows フォームでサポートされています。Visual Basic 6.0 で DAO または RDO を ADO にアップグレードする方法については、Visual Basic 6.0 のヘルプを参照してください。
Web アーキテクチャに関する推奨事項
Visual Basic 2008 には、ASP の強化版である ASP.NET が導入されており、Visual Basic に似たイベント モデルを使用して Web ページを生成する Web フォームというテクノロジを用いたアーキテクチャが追加されています。アーキテクチャは、サーバーをベースとしています。
次の条件を満たす Web ベースのアプリケーションは簡単にアップグレードできます。
Microsoft の多階層アーキテクチャ ガイドラインに従っている。
Active Server Pages (ASP) を使用している。
ビジネス ロジックに Visual Basic 6.0 または Visual C++ 6.0 の COM オブジェクトを使用している。
ASP は Visual Basic 2008 で完全にサポートされており、引き続き ASP、ASP.NET、および Web フォームを使用してアプリケーションを拡張できます。Visual Basic 6.0 および Visual C++ 6.0 のビジネス オブジェクトは、変更せずにそのまま使用することも、Visual Basic 2008 にアップグレードすることもできます。
Visual Basic 2008 では、WebClass は使用されなくなりました。既存の Webclass アプリケーションは、Visual Basic 2008 の Web フォームおよび ASP アプリケーションと相互運用するか、または Web フォーム アプリケーションにアップグレードできます。