Ваша функция CreateLogFile
создает / открывает файл, но сразу же закрывает его:
Function CreateLogFile()
If objFSO.FileExists(strFile) Then
Set objTSO = objFSO.OpenTextFile(strFile, FOR_APPENDING)
objTSO.WriteLine strcurrentDateTime & " " & string0
objTSO.WriteLine strcurrentDateTime & " " & string1
<b>objTSO.Close()</b>
Else
objFSO.CreateTextFile(strFile)
Set objTSO = objFSO.OpenTextFile(strFile, FOR_APPENDING)
objTSO.WriteLine strcurrentDateTime & " " & string0
objTSO.WriteLine strcurrentDateTime & " " & string1
<b>objTSO.Close()</b>
End If
End Function
означает, что когда функция возвращает дескриптор файла, он уже закрыт, что приводит к неудаче всех последующих попыток записи в файл (без повторного открытия).
Что вы действительно хотите сделать, так это изменить свою функцию на что-то вроде этого:
Function CreateLogFile(filename)
Dim f : Set f = objFSO.OpenTextFile(filename, 8, True)
f.WriteLine Now & " " & string0
f.WriteLine Now & " " & string1
Set CreateLogFile = f
End Function
Dim objTSO : Set objTSO = CreateLogFile(strFile)
...
objTSO.Close 'at the end of the script
Установка третьего параметра метода OpenTextFile
на True
заставляет его создать файл в случае его отсутствия.