|
▼角田 さん:
エラー処理の使い方について、完全に間違っていました
角田さんのアドバイスを聞いて、初めて知りました
On Error GoTo xxx
のときには、
On Error GoTo 0
は使えないんですね
もうすこし、エラー処理のところを勉強してみます
二回目以降のエラーが回避できない理由を知ることができて
よかったです
ありがとうございました
>> On Error GoTo MyErr
>> For e = 0 To UBound(MyData)
>>
>> MyErr:
>> On Error GoTo 0
>> Next i
>
>[On Error GoTo xxx]でエラー処理ルーチンを開始した後に、
>エラー処理ルーチンを抜ける命令は[On Error GoTo 0]ではありません。
>それではエラー処理ルーチンは抜け出せません。
>その後も、ず〜っとエラー処理ルーチンの『中』です。
>
>エラー処理ルーチン実行中には「更なるエラー処理ルーチンの実行」は
>行なわれません。その為
>> 一回はエラー回避で飛ばせるものの、2回以降、エラーが発生すると、
>> エラー回避をしてくれません
>となります。
>
>[On Error GoTo xxx]でエラー処理ルーチンを開始した後に
>エラー処理ルーチンを抜ける命令は(頭に On Error が付かない)[Resume xxx]です。
>
>
>こういう時のエラー対処は、普通は下記のようにします。
>j = -1
>On Error Resume Next
>j = UBound(MyData)
>On Error GoTo 0
>If (j <> -1) Then
> For e = 0 To j
> (中略)
> Next e
> Erase MyData
>End If
|
|