マクロ実行時にエラーが発生し落ちないようにします。
エラーログを作成しておくと後からでも確認できて便利です。
まず、エラーを発生させるためのサンプルを作成しました。
以下のコードは0の除算で必ずエラーになります。
このログに記載されるのはエラーの発生年月日、時間、エラー番号と内容です。
Sub わざとエラーを起こす()
'
'エラーが発生したら myError に飛ばす
On Error GoTo myError
'
Range("A1") = 10 / 0
'
'通常の処理の最後には必ず Exit Sub を入れる
Exit Sub
'
myError:
'情報を引数に入れて渡す
Call エラーログ作成( _
Format(Now, "YYYY/MM/DD") & Format(Now, "HH:NN:SS") & vbNewLine & _
"エラー番号 :" & Err.Number & vbNewLine & _
"エラー内容 :" & Err.Description & vbNewLine _
)
MsgBox "マクロ内でエラーが発生しました。" & vbNewLine & _
"詳細はerror.logをご確認ください。", _
vbExclamation
'
End Sub
次にエラーログを作成するマクロを記述します。
上記のマクロでエラーが発生すると、必要事項を渡された以下のマクロが呼び出されてログを作成します。
Sub エラーログ作成(ByVal errMsg As String)
'
Dim myFSO As Object
Dim newLog As String
'
Set myFSO = CreateObject("Scripting.FileSystemObject")
newLog = ThisWorkbook.Path & "\error.log"
'
With myFSO
'ログファイルがなければ作成
If Not .FileExists(newLog) Then .CreateTextFile (newLog)
'
With .OpenTextFile(newLog, 8) '追加して書き込む
.WriteLine errMsg
.Close
End With
End With
Set myFSO = Nothing
End Sub
上記のコードの場合は以下のような形になります。
2019/02/01 23:09:46
エラー番号 : 11
エラー内容 : 0 で除算しました。
以上です。
0コメント