| 
    
     |  | ▼なみ さん: Functionは重要なので覚えておいた方が良いと思います。
 
 簡単に説明すると、仕事の結果を返す物です。
 
 1.なぜプロシージャを作成する?
 同じ処理を何度も書くのではなく、関数化しておけば必要な時に
 Call ○○ と書けるから。
 
 2.作成したプロシージャは、ちゃんと仕事をしたの?
 例えば印刷プロシージャを作成したとして、メイン処理側で処理が
 完了したので印刷プロシージャをコールし印刷しようとした。
 でも、そいつは正常に印刷したのかがメイン側から解らない。
 なので、正常に仕事をしたのか、不慮の事故にあったのかをメイン側
 (呼び出し側)に返す必要がある。全てではないけど。
 
 3.引数と戻り値って?
 2.の例でいくと、印刷プロシージャは何を印刷すれば解らないので
 印刷するデータが必要。そのデータの事を『引数』という。
 引数を元に印刷処理を完了し、それを呼び出し側に伝える値を『戻り値』
 という。
 VBAの場合、戻り値が欲しい時に『Function』を使用する。
 また、『Function』を必ず用いる必要はなく、グローバル変数を使うと
 値は、どこからでも参照できる。(厳密には違う)
 
 さて、元々の質問に戻ると
 処理2の中でエラー処理をしていても、処理2が失敗したことをtest側(メイン側)
 では認識出来ないから処理3を実行してしまう。もし失敗した事が解れば
 
 If(処理2は失敗したの?) Then
 ' 失敗した処理
 Else
 ’処理2が成功したから処理3
 End If
 
 と出来る。
 頑張ってください^^
 
 |  |