On...GoSub、On...GoTo ステートメント
式の値に応じて、複数の指定した行のいずれかに分岐します。
構文
式GoSub変換先リスト
式GoTo変換先リスト
On...GoSub ステートメントおよび On...GoTo ステートメントの構文には、次の指定項目があります。
指定項目 | 説明 |
---|---|
expression | 必須。 0 以上 255 以下の整数に評価される任意の数値式です。 expression が整数以外の数値の場合は、評価の前に四捨五入されます。 |
destinationlist | 必須。 コンマで区切られた行番号または行ラベルのリスト。 |
解説
expression の値により、destinationlist 内のどの行に分岐するかが決まります。 expression の値が 1 より小さいか、またはリスト内のアイテム数よりも大きい場合、結果は次のいずれかになります。
expression の値 | Then |
---|---|
0 に等しい | On...GoSub または On...GoTo の次のステートメントに制御が移動します。 |
リスト内の項目数より大きい | On...GoSub または On...GoTo の次のステートメントに制御が移動します。 |
負の値 | エラーが発生します。 |
255 より大きい | エラーが発生します。 |
同じリスト内に行番号と行ラベルが混在していてもかまいません。 On..で必要な数の行ラベルと行番号を使用 します。GoSub と On...GoTo。 ただし、1 行に収まらない数のラベルや番号を使用する場合は、行連結文字を使用して、論理行が次の物理行につながるようにする必要があります。
ヒント
Select Case を使用すると、より構造化された柔軟な方法で複数の分岐を実行できます。
例
この例では、On...GoSub ステートメントと On...GoTo ステートメントを使用して、それぞれサブルーチンと行番号に分岐します。
Sub OnGosubGotoDemo()
Dim Number, MyString
Number = 2 ' Initialize variable.
' Branch to Sub2.
On Number GoSub Sub1, Sub2 ' Execution resumes here after
' On...GoSub.
On Number GoTo Line1, Line2 ' Branch to Line2.
' Execution does not resume here after On...GoTo.
Exit Sub
Sub1:
MyString = "In Sub1" : Return
Sub2:
MyString = "In Sub2" : Return
Line1:
MyString = "In Line1"
Line2:
MyString = "In Line2"
End Sub
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。