VBA ログ出力テンプレート(外部ファイル版:CSV/TXT)
業務マクロでは「処理の記録」を残すことが重要です。Excelシートに書く方法もありますが、外部ファイル(CSV/TXT)にログを出力すると、後から確認や共有がしやすくなります。
基本テンプレ(TXTファイルに追記)
Option Explicit
'=== ログ出力(TXTファイル) ===
Sub WriteLogTXT(msg As String)
Dim fso As Object
Dim ts As Object
Dim filePath As String
' ログファイルの保存場所(ブックと同じフォルダ)
filePath = ThisWorkbook.Path & "\log.txt"
' FileSystemObjectを使って追記
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(filePath, 8, True) ' 8=追記モード, True=新規作成可
ts.WriteLine Format(Now, "yyyy/mm/dd hh:nn:ss") & " - " & msg
ts.Close
End Sub
'=== メイン処理 ===
Sub MainProcess()
On Error GoTo ErrHandler
WriteLogTXT "処理開始"
' ▼業務処理の例
Range("A1").Value = "Hello VBA!"
WriteLogTXT "処理正常終了"
Exit Sub
ErrHandler:
WriteLogTXT "エラー発生: " & Err.Number & " - " & Err.Description
MsgBox "エラーが発生しました。ログを確認してください。", vbCritical
End Sub
VBCSVファイルに出力する版
Option Explicit
'=== ログ出力(CSVファイル) ===
Sub WriteLogCSV(msg As String)
Dim fso As Object
Dim ts As Object
Dim filePath As String
filePath = ThisWorkbook.Path & "\log.csv"
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(filePath, 8, True)
' CSV形式で「日時,メッセージ」を出力
ts.WriteLine Format(Now, "yyyy/mm/dd hh:nn:ss") & "," & msg
ts.Close
End Sub
Sub MainProcessCSV()
On Error GoTo ErrHandler
WriteLogCSV "処理開始"
' ▼業務処理の例
Range("A1").Value = "データ処理完了"
WriteLogCSV "処理正常終了"
Exit Sub
ErrHandler:
WriteLogCSV "エラー発生: " & Err.Number & " - " & Err.Description
End Sub
VB実務での使い方
- TXT版 → 人間が目視で確認しやすいログ
- CSV版 → Excelで読み込んで分析できるログ
- 共通のポイント
- 処理開始/終了/エラーを必ず記録
- ファイルはブックと同じフォルダに保存(パスを変更すれば自由に指定可能)
- 追記モードで開くので、過去のログは消えずに蓄積される
✅ まとめ
- TXTログ → 簡単に確認用
- CSVログ → Excelで集計・分析用
- エラー処理と組み合わせると業務マクロが安全に運用できる


