VBA logファイル書き出し処理

  • 作成日 2019.08.20
  • 更新日 2020.07.20
  • vba
VBA logファイル書き出し処理

自分用に過去開発した マクロがあり、logを書き出す処理がなかったので追加した際のサンプルコード

ソースコード

WriteLogという関数で、Logファイルを作成する処理を追加

Sub WriteLog(msg As String)
' エラー処理が発生した場合に実行するエラー処理の名前を記載
On Error GoTo EXCEPTION_SECTION

Const PROCEDURE_NAME As String = "WriteLog"

    Dim objFso As Object, objLog As Object
    Dim strFilePass As String
    
    Set objFso = CreateObject("Scripting.FileSystemObject")
    
    'logをyyyymmddで日毎に作成
    strFilePass = Application.ThisWorkbook.Path & "\Report" & Format(Date, "yyyymmdd") & ".log"
    
    'ログファイルがなければ作成
    If objFso.FileExists(strFilePass) = False Then
        objFso.CreateTextFile strFilePass
    End If
   
    Set objLog = objFso.OpenTextFile(strFilePass, 8)
    '日時+タブ+msgをファイル書き込み
    objLog.WriteLine Now & vbTab & msg
    
GoTo EXIT_SECTION

EXCEPTION_SECTION:
           
    With Err
        If .Number <> 0 Then
            
            MsgBox (PROCEDURE_NAME & "でエラーが発生"), vbOKOnly + vbExclamation + vbSystemModal, "エラー"
        
        End If
    End With

    GoTo EXIT_SECTION
    
EXIT_SECTION:
    
    Set objFso = Nothing
    Set objLog = Nothing

End Sub