■ レガシー機能
- Visual Basic .NET でなくなる機能は Visual Basic 6.0 でも (できるだけ) 使わない
Visual Basic .NET にはなくなる Visual Basic 6.0 の機能
- On~GoTo/GoSub、GoSub/Return
- VarPtr、ObjPtr、StrPtr
- LSet によるユーザー定義型変数の代入
- DefBool、DefByte、DefInt、DefStr など
これらの機能を利用したことがない方は、このページは一切読む必要はありません。
意味的に対応する処理に変更されるものもあります。たとえば、Visual Basic 6.0 で記述された以下のような On…GoTo は、
アップグレードウィザードによって、次のような Select Case ステートメントに変換されます。
Private Sub Proc1()
Dim number As Short
number = 2
Select Case number
Case Is < 0
Error(5)
Case 1
GoTo LineX
Case 2
GoTo LineY
End Select
LineX:
' 処理
LineY:
' 処理
End Sub
このように、非常に冗長になっていることがおわかりいただけると思います。
また、Visual Basic 6.0 で使用していた次のような Defxxx は、
DefStr A-C 'A から C で始まる変数を String 型で扱う
Adata1 = "Hello"
アップグレードウィザードによって次のように変換されます。
Dim Adata1 As String
Adata1 = "Hello"
変換されるからといって、Visual Basic 6.0 でのこれらの使用をお勧めするわけではありません。
また、これ以外のレガシー機能は、ウィザードによっても変更されず、そのままではビルドエラーになります。
このようなレガシーな機能は、できる限り Visual Basic 6.0 でも使用を避けるようにしてください。
たとえば、On…GoTo を使用する代わりに、Visual Basic 6.0 でもあらかじめ、適切な Select…Case を利用しておきましょう。また、Defxxx ステートメントを使うのは避け、変数を明示的に宣言するようにしましょう。
これにより、Visual Basic .NET へのスムーズな移行が行なえます。