Excel VBA 逆引き集 | イベントログ

Excel VBA
スポンサーリンク

イベントログ出力

Excel VBAで「イベントログ」を扱うと、Windowsのシステムログに記録を残すことができます。
これは「処理の開始・終了」「エラー発生」などを Windowsイベントビューア で確認できるようにする仕組みです。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • イベントログとは?
    Windowsが持っている「システムやアプリの記録帳」。
    Excel VBAからも「アプリケーションログ」に書き込める。
  • 用途:
    • エラーや警告をシステム管理者に残す
    • バッチ処理の開始・終了を記録する
    • Excelを「業務処理の記録ツール」として活用する

テンプレ1:イベントログに情報を書き込む

Sub WriteEventLog_Info()
    Dim objLog As Object
    
    ' WScript.Shellを使ってイベントログに書き込み
    Set objLog = CreateObject("WScript.Shell")
    
    ' Applicationログに「情報」を記録
    objLog.LogEvent 4, "Excel VBA処理開始: データ更新を開始しました。"
    
    MsgBox "イベントログに情報を記録しました!"
End Sub
VB
  • ポイント:
    • LogEvent 4 → 情報 (Information)
    • メッセージは自由に設定可能

テンプレ2:イベントログに警告を書き込む

Sub WriteEventLog_Warning()
    Dim objLog As Object
    Set objLog = CreateObject("WScript.Shell")
    
    ' Applicationログに「警告」を記録
    objLog.LogEvent 2, "Excel VBA警告: データが見つかりませんでした。"
    
    MsgBox "イベントログに警告を記録しました!"
End Sub
VB
  • ポイント:
    • LogEvent 2 → 警告 (Warning)
    • 例:ファイルが見つからない、入力不足など

テンプレ3:イベントログにエラーを書き込む

Sub WriteEventLog_Error()
    On Error GoTo ErrHandler
    
    ' 故意にエラー発生
    Worksheets("NoSheet").Activate
    
    Exit Sub
    
ErrHandler:
    Dim objLog As Object
    Set objLog = CreateObject("WScript.Shell")
    
    ' Applicationログに「エラー」を記録
    objLog.LogEvent 1, "Excel VBAエラー: " & Err.Description
    
    MsgBox "イベントログにエラーを記録しました!"
End Sub
VB
  • ポイント:
    • LogEvent 1 → エラー (Error)
    • Err.Description でエラーメッセージを記録

テンプレ4:処理開始・終了をイベントログに残す(業務向け)

Sub WriteEventLog_Process()
    Dim objLog As Object
    Set objLog = CreateObject("WScript.Shell")
    
    objLog.LogEvent 4, "Excel VBA処理開始: 日次レポート生成"
    
    ' ここに本処理(例:集計やファイル出力)
    Worksheets("Report").Range("A1").Value = "日次レポート完了"
    
    objLog.LogEvent 4, "Excel VBA処理終了: 日次レポート生成完了"
    
    MsgBox "処理開始・終了をイベントログに記録しました!"
End Sub
VB
  • ポイント:
    • 開始と終了を記録すると「処理が走ったか」を後から確認できる。
    • バッチ処理や定期タスクに便利。

例題で練習

'例1:処理開始を「情報」としてイベントログに記録
'例2:データ不足を「警告」としてイベントログに記録
'例3:エラー発生を「エラー」としてイベントログに記録
'例4:日次処理の開始・終了をイベントログに記録
VB

初心者向けポイント

  • LogEventの番号で種類を指定
    • 1 = エラー
    • 2 = 警告
    • 4 = 情報
  • イベントビューアで確認できる → Windowsの「管理ツール → イベントビューア → Windowsログ → アプリケーション」
  • Err.Descriptionを組み込むと便利 → エラー原因がすぐ分かる
  • 開始・終了を記録すると業務監査に役立つ

👉 この「イベントログ出力テンプレ」を覚えておけば、Excel VBAで 処理の開始・終了やエラーをWindowsイベントログに残し、システム管理者や自分自身が後から確認できる仕組み を簡単に作成できます。

タイトルとURLをコピーしました