「現場で使える! SQL Server実践ガイド」を公開しました!

【VBA】ログを出力する

サンプルプログラム概要

・実行中のVBA(Excelファイル)があるフォルダ配下へログファイルを出力する
・ログファイルが存在している場合、「追記モード【末尾に書き込み】」で開く
・ログファイルが存在していない場合、新規作成する
・ログファイルへ出力する内容は「年月日時分秒 XXXXXXX」
・ログファイルを開いている状態でログ出力しても、問題無くログ出力可能

サンプルプログラム

'●MainModule
Option Explicit

Sub logSample()

    Dim fso As Object
    Dim startTime As Date
    Dim endTime As Date
    
    startTime = Now
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'ログ出力
    Call WriteLog("Test Message2", fso)
    
    Set fso = Nothing
    
    endTime = Now
    
    MsgBox "完了しました!" & vbCrLf & _
            "開始時間:" & startTime & vbCrLf & _
            "終了時間:" & endTime
            
End Sub
'●LogModule
Option Explicit

'ログ出力
Public Function WriteLog(msg As String, fso As Object)
    
    Const TOOL_LOG_FILE_NAME As String = "tool.log"
    
    Dim logFilePath As String
    Dim log As Object

    logFilePath = fso.BuildPath(ThisWorkbook.Path, TOOL_LOG_FILE_NAME)
    
    'ログファイルが存在している場合は「8(追記モード【末尾に書き込み】)」で開く。
    '存在していない場合は「True(新規作成)」
    '形式は「-2(システムの既定値)」
    Set log = fso.OpenTextFile(logFilePath, 8, True, -2)
    
    'ログ出力
    log.WriteLine Now & " " & msg
    
    Set log = Nothing

End Function

実行結果

タイトルとURLをコピーしました