Excel VBA | 実務用 VBA コード集(テンプレ付き)

Excel VBA VBA
スポンサーリンク

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
VB

CSVファイルに出力する版

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で集計・分析用
  • エラー処理と組み合わせると業務マクロが安全に運用できる
タイトルとURLをコピーしました