ray88’s diary

お仕事で困ったとき用の自分用の覚書

VBA ログ出力

VBAでログ出力させる

Sub logtest()
Dim strErrText As String
    strErrText = "エラー発生"
    'ログ出力
    Call writeLog(strErrText)
End Sub
Sub writeLog(strErr As String)

    Dim objFso As Object
    Dim strDay As String
    Dim strPath As String
    
    Set objFso = CreateObject("Scripting.FileSystemObject")
    '本日日付(yyyyMMdd形式)
    strDay = Format(Now, "yyyyMMdd")
    'ログファイルパスを生成
    strPath = ThisWorkbook.Path & "\errLog\" & strDay & "_err.log"
    'errLogフォルダに本日分ログファイルがなければファイルを新規作成
    If Not objFso.FileExists(strPath) Then
        objFso.CreateTextFile (strPath)
    End If
    'エラーログ書込み(定数8はAppendモード)
    With objFso.OpenTextFile(strPath, 8)
        .WriteLine Now & vbTab & strErr
        .Close
    End With

    Set objFso = Nothing

End Sub
定数 内容
ForReading 1 ファイルを読み取り専用として開く
ForWriting 2 ファイルを書き込み専用として開く
FroAppending 8 ファイルを追記用として開く

f:id:ray88:20200717234936p:plain
f:id:ray88:20200717235001p:plain