VBAのエラー処理

VBAでプログラムを実行する場合、バグだけでなくユーザーの操作ミスなどでエラーが発生する可能性があります。

その場合、プログラムを停止させずに回避する必要があります。その基本的な処理方法です。



Homeに戻る > Excelでよく使うフレーズへ

エラー処理をしていないVBAコード

0の割り算でエラーを発生させています。

Sub MyError1()
    Dim n1 As Long
    Dim n2 As Long
    
    n1 = 200
    n2 = 0
    Range("A1") = n1 / n2
End Sub

0で除算しました

On Error Goto

On Error Gotoステートメントで、エラーが発生した場合別の処理にジャンプします。
Err.Numberで、エラー番号を取得できます。
Err.Descriptionで、エラー内容を取得できます。

Sub MyError2()
    Dim n1 As Long
    Dim n2 As Long
    
On Error GoTo ErrSub
    n1 = 200
    n2 = 0
    Range("A1") = n1 / n2
    Exit Sub
ErrSub:
    MsgBox "エラーが発生しました" & vbCrLf & Err.Number & " : " & Err.Description
End Sub

0で除算しました

On Error Resume

On Error Resume Nextステートメントで、エラーを無視して処理を続ける。

Sub MyError3()
    Dim n1 As Long
    Dim n2 As Long
    
On Error Resume Next
    n1 = 200
    n2 = 0
    Range("A1") = n1 / n2
End Sub

On Error GoTo 0

On Error GoTo 0ステートメントで、エラー処理を解除する。

Sub MyError4()
    Dim n1 As Long
    Dim n2 As Long
    
On Error Resume Next
    n1 = 200
    n2 = 0
    Range("A1") = n1 / n2
    MsgBox "エラーを回避しました"
On Error GoTo 0
    Range("A1") = n1 / n2
    MsgBox "エラーが発生しました" & vbCrLf & Err.Number & " : " & Err.Description
End Sub

エラーを回避しました

0で除算しました


Homeに戻る > Excelでよく使うフレーズへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved