プロシージャ内の指定された行に無条件に分岐します。
構文
GoTo line
部分
line
必須。 任意の行ラベル。
注釈
GoTo ステートメントは、そのステートメントが出現するプロシージャ内の行にのみ分岐できます。 行には、 GoTo 参照できる行ラベルが必要です。 詳細については、「 方法: ステートメントにラベルを付ける」を参照してください。
注
GoTo ステートメントを使用すると、コードの読み取りと保守が困難になる可能性があります。 可能な限り、代わりに制御構造を使用してください。 詳細については、「 Control Flow」を参照してください。
GoTo ステートメントを使用して、For...Next、For Each...Next、SyncLock...End SyncLock、Try...Catch の外部から分岐することはできません。...Finally、With...End With、または内部のラベルへのUsing...End Using構築。
分岐と試用の構造
Try内...Catch...Finally構築では、GoTo ステートメントを使用した分岐に次の規則が適用されます。
| ブロックまたはリージョン | 外部からの分岐 | 内側から分岐する |
|---|---|---|
Try ブロック |
同じ構造の Catch ブロック からのみ 1 |
建設全体の外側にのみ |
Catch ブロック |
許可なし | 建設全体の外側、または同じ建設1のTryブロックに対してのみ |
Finally ブロック |
許可なし | 許可なし |
1Tryの場合...Catch...Finally コンストラクションが別のブロック内に入れ子になっている場合、 Catch ブロックは独自の入れ子レベルで Try ブロックに分岐できますが、他の Try ブロックには分岐できません。 入れ子になった Try...Catch...Finally コンストラクションは、入れ子になったコンストラクションの Try または Catch ブロックに完全に含まれている必要があります。
次の図は、1 つの Try 構造が別の構造内に入れ子になっているものを示しています。 2 つのコンストラクションのブロック間のさまざまな分岐は、有効または無効として示されます。
例
次の例では、 GoTo ステートメントを使用して、プロシージャ内のラベルに分岐します。
Sub GoToStatementDemo()
Dim number As Integer = 1
Dim sampleString As String
' Evaluate number and branch to appropriate label.
If number = 1 Then GoTo Line1 Else GoTo Line2
Line1:
sampleString = "Number equals 1"
GoTo LastLine
Line2:
' The following statement never gets executed because number = 1.
sampleString = "Number equals 2"
LastLine:
' Write "Number equals 1" in the Debug window.
Debug.WriteLine(sampleString)
End Sub
こちらも参照ください
.NET