GoSub...Return ステートメント
プロシージャ内で、サブルーチンに分岐し、サブルーチンから戻ります。
構文
GoSub行
...
線
線...
Return
line引数には、任意の行ラベルまたは行番号を指定できます。
解説
プロシージャ内の任意の場所で GoSub と Return を使用しますが、 GoSub と対応する Return ステートメントは同じプロシージャ内にある必要があります。 サブルーチンには複数の Return ステートメントを含めることができます。ただし、最初に実行される Return ステートメントが原因で、実行フローが、最も最近実行された GoSub ステートメントの直後のステートメントに分岐が戻る形になります。
注:
GoSub...Return を使用して Sub プロシージャに出入りすることはできません。
ヒント
別のプロシージャを作成して呼び出せるようにしておくと、GoSub...Returnの使用に対するより構造的な代替手段となることもあります。
例
この例では、GoSub を使用して Sub プロシージャ内でサブルーチンを呼び出します。 Return ステートメントが原因で、GoSub ステートメントの直後のステートメントが再度実行されることになります。 誤ってサブルーチンに入ることを防ぐために、Exit Sub ステートメントが使用されています。
Sub GosubDemo()
Dim Num
' Solicit a number from the user.
Num = InputBox("Enter a positive number to be divided by 2.")
' Only use routine if user enters a positive number.
If Num > 0 Then GoSub MyRoutine
Debug.Print Num
Exit Sub ' Use Exit to prevent an error.
MyRoutine:
Num = Num/2 ' Perform the division.
Return ' Return control to statement.
End Sub ' following the GoSub statement.
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。