Visual Basic 6.0 から Visual Basic 2005 へのアップグレード ~ AcriveX コントロール ~
サンプル コードのダウンロード (vbmigtips_ControlUpGrade_acX.msi, 597 KB)
※ このサンプルをお使いいただくためには、Visual Studio 2005 Beta 2 が必要です。
Visual Basic 2005 では、.NET Framework 2.0 のサポートによって様々な機能の追加に加え、実装方法やオブジェクトなどが変更されました。そのため、Visual Basic 2005 へ移行する場合、様々な変更が必要となります。ですが、Visual Basic 2005 のアップグレードウィザードを使用することで、 Visual Basic 6.0 で作成したプロジェクトを簡単に移行させることができます。今回は、Visual Basic 6.0 で AcriveX コントロールの ListView を使用したアプリケーション(図1)を Visual Basic 2005 に移行してみましょう。
図1
Visual Basic 6.0 で、図1 のアプリケーションの作成方法と実装コードは以下のとおりです。
まず、ListView コントロールを追加します。[プロジェクト]メニューの[コンポーネント]を選択し、[コンポーネント]ダイアログを表示します。表示されたダイアログの[コントロール]タブで「Microsoft Windows Common Controls 5.0」のチッェクをオンにします。これにより、ツールボックスに ListView コントロールが追加されます。 次に、ListView コントロールのショートカットメニューから[プロパティ]を選択し、[プロパティ ページ]ダイアログを開きます。表示された[プロパティ ページ]ダイアログで、リストビューの表示方法や表示する列の見出しなどを設定します。 最後に、下記のコードを実装します。
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 20
ListView1.ListItems.Add , , "ITEM " & i
Next
End Sub
|
リスト1
リスト1 の「For i = 1 To 20 ... Next」でリストビューの「名前」列にデータを入力します。
アップグレードウィザードを使用して Visual Basic 6.0 で作成したプロジェクト(リスト1)を Visual Basic 2005 に移行する場合、 まず Visual Basic 6.0 で作成したプロジェクトを Visual Studio 2005 で開きます。 自動的にアップグレードウィザードが起動し、指示に従って操作を行うと、コードが変換されます。 アップグレードによって変換されたコードは以下のとおりです。
Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
Dim i As Short
For i = 1 To 20
ListView1.Items.Add("ITEM " & i)
Next
End Sub
|
リスト2
今回注目するのは、Form.vb (リスト2) のコードではなく、Windows フォーム デザイナによって生成されたコードが記述されている Form1.Designer.vb のコードです。Form1.Designer.vb の ListView コントロールを生成しているコード「Public WithEvents ListView1 As System.Windows.Forms.ListView」からわかるように、Visual Basic 6.0 では、AcriveX コントロールの ListView を使用していましたが、Visual Basic 2005 では自動的に Windows フォーム コントロールの ListView コントロールに変換されています。アップグレードした Visual Basic 2005 のプロパティをビルドし実行すると、図2 のように表示されます。
図2
上記では、アップグレードしたプロジェクトが正常に実行することができました。しかし、Visual Basic 2005 にアップグレードできない機能もあります。アップグレードできなかったものの情報や、修正が必要なものの情報は、「_UpgradeReport.htm (アップグレードレポート)」に修正方法と共に、記述されます。 このアップグレードレポートは、アップグレードウィザードを使用した際、プロジェクトに追加されます。図3 はリスト2 のアップグレードレポートです。
図3
エラーが発生した場合は、修正が必要です。 今回アップグレードしたプロジェクトでは、ListView コントロールではサポートされていないプロパティが存在したためデザイン エラーが発生しています。しかし、このエラーは同等の機能を独自に実装しなくともよい機能であったため、正常に実行することができました。