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