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