| 
    
     |  | ▼なみ さん: >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
 
 |  |