(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【ExcelVBA】マクロで発生したエラー情報をテキストファイルに出力させる方法

スポンサーリンク

はじめに

VBAコードをコマンドプロンプトのバッチから読みだして利用するとエラーが発生した場合にエラー内容が確認できません。
そこで、本記事ではVBAコードに数行差し込むことでエラー発生時に時刻情報付きでエラー内容をテキストファイルに書き出す方法を解説します。

環境情報
  • Excel:Microsoft Office 365 2020年
  • Microsoft Visual Basic for Applications 7.1

VBAに追記するコード

モジュールの先頭に以下を追記します。

On Error GoTo Err_line

これでErrorが発生した際にErr_lineに移動します。

そしてモジュールの最下部に以下を追記します。

Exit Sub
Err_line:
Open "C:\...\error.log" For Append As #1
Print #1, "[" & Now & "]" & vbCrLf & Err.Description
Close #1

Openの中でエラーログを書き込むテキストファイルをフルパスで指定します。
Appendとしている部分ではファイルに追記していくことを宣言しています。逆にこの部分をOutputに変更すれば上書きして書き込むので最新のエラーのみが残ります。

実行例

ASCII形式のログファイルができていて

$ file error.log
error.log: ASCII text, with CRLF line terminators

中には時刻データ付きでログが出力されています。

[2020/09/07 10:45:13]
ERROR…

終わりに

プログラムの動作検証時に利用できる手法です。
ご参考になれば幸いです。