初心者でも実務で使いやすいように、「ログ出力」と「エラー処理」を組み込んだ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を呼び出せば、任意の処理途中でも記録可能- 複数の業務処理に共通で使える
実務での使い方例
- データ処理マクロ
- 開始時に「処理開始」、終了時に「処理完了」をログ
- エラー時は「エラー番号+内容」を記録
- 定期バッチ処理
- 毎日実行して「成功/失敗」をログに残す
- 後からトラブル調査が容易になる
💡 このテンプレートをベースに「処理内容を細かくログ出力」すると、業務でのトラブルシュートが格段に楽になります。


