次の方法で共有


■ レガシー機能

  • 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 へのスムーズな移行が行なえます。