はじめに
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…
終わりに
プログラムの動作検証時に利用できる手法です。
ご参考になれば幸いです。