|
▼なみ さん:
>Sub Test ()
>
>Call 処理1
>Call 処理2
>Call 処理3
>
>End Sub
>処理2のプロシージャ内でエラー処理をしています。
エラー処理は、上位のプロシージャで行って下さい。
>処理2でエラー発生しても、そのまま処理3へ進んでしまいます
>これを止める方法はないのでしょうか?
全体の処理は、処理1/2/3なので、それぞれの関数は、成功したかどうかを
返しましょう。
こんな感じです。
' 概要 :整数Aと整数Bは同じかチェックするプロシージャ
' 戻り値:同じ 0 違う -1
Private Function 処理1(a As Integer, b As Integer) As Integer
' 初期化
処理1 = -1
If (a = b) Then 処理1 = 0
End Function
その戻り値を元に、以下の様に判定しましょう。
Sub test()
If (処理1 <> 0) Then GoTo ERR_HANDLER
If (処理2 <> 0) Then GoTo ERR_HANDLER
If (処理3 <> 0) Then GoTo ERR_HANDLER
Exit Sub
ERR_HANDLER:
' エラー処理
End Sub
|
|