次の方法で共有


GoSub...Return ステートメント

プロシージャ内で、サブルーチンに分岐し、サブルーチンから戻ります。

構文

GoSub
...
...
Return

line引数には、任意の行ラベルまたは行番号を指定できます。

解説

プロシージャ内の任意の場所で GoSubReturn を使用しますが、 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 のサポートおよびフィードバックを参照してください。