方法 : ユーザー定義型を Visual Basic の構造体に変換する
更新 : 2007 年 11 月
Visual Basic 6.0 の Type ステートメントは、Visual Basic 2008 では Structure ステートメントにアップグレードされます。また、型をアップグレードする他の 2 つのオプションである、クラスへの変換およびインターフェイスへの変換についても説明します。
以下では、次の Visual Basic 6.0 型を例として説明を進めます。
Type Customer
Dim FirstName As String
Dim LastName As String
Dim Id As Long
End Type
Private Function FormatFullName(aCustomer As Customer) As String
FormatFullName = aCustomer.FirstName & " " & aCustomer.LastName
End Function
アップグレード ウィザードは、Visual Basic 6.0 の型を自動的に Visual Basic 2008 の構造体にアップグレードします。Structure は、メソッド、プロパティなどのメンバをサポートするデータ型です。
型を構造体にアップグレードするには
アップグレード ウィザードを実行します。
メモ : アップグレード ウィザードは、Visual Basic 6.0 アプリケーションを Visual Basic 2008 にアップグレードするためのツールです。Visual Basic 2008 で Visual Basic 6.0 プロジェクトを開くと、このウィザードが自動的に起動します。詳細については、「方法 : Visual Basic アップグレード ウィザードを使ってプロジェクトをアップグレードする」を参照してください。
Structure 型の他の機能を利用する場合は、構造体に含めるのが適切なメソッドを探します。次のコード例では、FormatFullName メソッドが構造体内の FormatFullName メソッドに変換されます。
Structure Customer Dim FirstName As String Dim LastName As String Dim Id As Integer Public Function FormatFullName() As String Return FirstName & " " & LastName End Function End Structure
アップグレード ウィザードは、Visual Basic 6.0 の型を自動的に Visual Basic 2008 の構造体にアップグレードします。Class 型は、サポートしているメンバは Structure と同じですが、参照型です。クラスは基本クラスになることができますが、構造体は基本クラスになれません。
クラスへアップグレードするには
アップグレード ウィザードを実行します。
Structure を Class に置き換えます。
Class 型の他の機能を利用する場合は、構造体に含めるのが適切なメソッドを探します。次のコード例は、クラスへの FormatFullName の組み込みと Id プロパティを示しています。
Class Customer Dim FirstName As String Dim LastName As String Private idValue As Integer Public Property Id() As Integer Get Return idValue End Get Set(ByVal Value As Integer) idValue = Value End Set End Property Public Function FormatFullName() As String Return FirstName & " " & LastName End Function End Class
構造体をインターフェイスに変換するという、3 番目のオプションがあります。
インターフェイスへアップグレードするには
アップグレード ウィザードを実行します。
Structure を Interface に置き換えます。
変数をプロパティ宣言に置き換えます。実装は含めません。
メソッドは追加しますが、実装は削除します。
コードは次のようになります。
Interface Customer Property FirstName() As String Property LastName() As String Property Id() As String Function FormatFullName() As String End Interface
このインターフェイスは、別のクラスに実装できます。定義を以下に示します。
Class NewCustomer Implements Customer Public Property FirstName() As String Implements Customer.FirstName Get ' Add code here. End Get Set(ByVal Value As String) ' Add code here. End Set End Property Public Property Id() As String Implements Customer.Id Get ' Add code here. End Get Set(ByVal Value As String) ' Add code here. End Set End Property Public Property LastName() As String Implements Customer.LastName Get ' Add code here. End Get Set(ByVal Value As String) ' Add code here. End Set End Property Public Function FormatFullName() As String _ Implements Customer.FormatFullName ' Add code here. End Function End Class
参照
処理手順
方法 : Visual Basic アップグレード ウィザードを使ってプロジェクトをアップグレードする