
普段は「On Error Resume Next」は使用しないので、あんまり仕様が分かってなかった。
エラーがでても次の行から処理を継続するとかだった気がしますが、、、
で、こんなコードを書いてみた。
Sub start()
On Error Resume Next
Dim i As Long
i = i / 0
Debug.Print ("でばっぐ")
End Sub
この場合、7行目でエラーになるわけですが、On Error Resume Next入れてるので、コンソールに「でばっぐ」と表示されます。
これをふまえて次。
Sub start()
On Error Resume Next
Call func
Debug.Print ("でばっぐ")
End Sub
Function func()
Dim i As Long
i = i / 0
Debug.Print ("functionのなか")
End Function
関数作ってその中でエラー出してます。
15行でエラーになって、「functionのなか」が表示されて最後に「でばっぐ」が表示される。
と思っていたのですが、
コンソールには「でばっぐ」しか表示されない。
「functionのなか」を表示するためには、関数の中にもOn Error Resume Next入れないといけないみたい。
ということを今さら知った。
まあ、よく考えればCall部分でエラーになっているわけで、次の行は Debug.Print (“でばっぐ”) となる。
当然といえば当然か。。。
今後使うことがあるかはわからないが、勉強になりました。