空白テキストファイルのBOM削除
解決したいこと
VBSでテキストファイルを保存するときに、UTF-8のBOMがついてしまうのを防ぐために、以下のようなコードを作りました。
Const adModeReadWrite = 3
Const adTypeBinary = 1
Const adTypeText = 2
Const adReadAll = -1
Const adReadLine = -2
Const adWriteChar = 0
Const adWriteLine = 1
Const adSaveCreateOverWrite = 2
Const adCRLF = -1
Sub RemoveBOM(FilePath)
Dim ObjAdoStream, WriteString
Set ObjAdoStream = CreateObject("ADODB.Stream")
With ObjAdoStream
.Type = adTypeText
.Mode = adModeReadWrite
.Charset = "UTF-8"
.Open
.LoadFromFile(FilePath)
.ReadText(adReadLine)
.Position = 0
.Type = adTypeBinary
.Position = 3
WriteString = .Read()
.Position = 0
.Write WriteString
.SetEoS
.SaveToFile FilePath, adSaveCreateOverWrite
.Close
End With
End Sub
通常時はこれで上手く行くのですが、空白ファイルを対象にすると以下のようなエラーが出ます。
恐らくWriteStringがNULLとなっているためだと思われます。
空白ファイルを対象にした時もBOMを取り除いて保存する方法はありますか?