Excel VBA | 「ログ出力」と「エラー処理」を組み込んだExcel VBAマクロのテンプレート

Excel VBA VBA
スポンサーリンク

初心者でも実務で使いやすいように、「ログ出力」と「エラー処理」を組み込んだExcel VBAマクロのテンプレートを紹介します。これをベースにすれば、業務用マクロを安全に運用できます。


実務マクロテンプレート(ログ・エラー処理付き)

Option Explicit

'=== ログ出力用 ===
Sub WriteLog(msg As String)
    Dim ws As Worksheet
    Dim lastRow As Long
    
    ' ログ用シートを指定(なければ作成)
    On Error Resume Next
    Set ws = ThisWorkbook.Sheets("Log")
    If ws Is Nothing Then
        Set ws = ThisWorkbook.Sheets.Add
        ws.Name = "Log"
    End If
    On Error GoTo 0
    
    ' 最終行を取得して追記
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
    ws.Cells(lastRow, 1).Value = Now
    ws.Cells(lastRow, 2).Value = msg
End Sub

'=== メイン処理 ===
Sub MainProcess()
    On Error GoTo ErrHandler
    
    WriteLog "処理開始"
    
    ' ▼ここに業務処理を書く例(サンプル)
    Dim total As Long, i As Long
    total = 0
    For i = 1 To 10
        total = total + i
    Next i
    Range("A1").Value = total
    
    WriteLog "処理正常終了"
    Exit Sub
    
ErrHandler:
    WriteLog "エラー発生: " & Err.Number & " - " & Err.Description
    MsgBox "エラーが発生しました。ログを確認してください。", vbCritical
End Sub
VB

このテンプレートのポイント

  • ログ出力
    • 「Log」シートに日時とメッセージを記録
    • 処理開始/終了/エラー発生を追跡できる
  • エラー処理
    • On Error GoTo ErrHandler でエラー時にジャンプ
    • エラー番号と内容をログに残す
    • ユーザーにはメッセージボックスで通知
  • 拡張性
    • WriteLog を呼び出せば、任意の処理途中でも記録可能
    • 複数の業務処理に共通で使える

実務での使い方例

  • データ処理マクロ
    • 開始時に「処理開始」、終了時に「処理完了」をログ
    • エラー時は「エラー番号+内容」を記録
  • 定期バッチ処理
    • 毎日実行して「成功/失敗」をログに残す
    • 後からトラブル調査が容易になる

💡 このテンプレートをベースに「処理内容を細かくログ出力」すると、業務でのトラブルシュートが格段に楽になります。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました