VBA 向檔案寫入編碼為UTF-8的資料
'需要引入 ActiveX Data Objects(ADO)元件
' 即 Microsoft ActiveX Data Objects 2.5 Library 或者 Microsoft ActiveX Data Objects 2.6 Library
Dim fileSaveName As String
'建立檔案並返回檔案路徑和名字
fileSaveName = Application.GetSaveAsFilename(fileName, fileFilter:="資訊檔案(*.txt), *.txt")
'建立寫入資料的流
Set outStream = CreateObject("ADODB.Stream")
outStream.Open
outStream.Charset = "utf-8"
outStream.Type = adTypeText
Set binStream = CreateObject("ADODB.Stream")
binStream.Open
binStream.Type = adTypeBinary
' 開始寫入資料
outStream.WriteText ("************************************" & vbCrLf)
outStream.WriteText ( Sheet1.Cells(5, 3) & vbCrLf) ' & vbCrLf 為換行符
outStream.WriteText ( Sheet1.Cells(5, 2) & vbCrLf)
' ## outStream.SaveToFile fileSaveName, 2 '如果直接儲存檔案寫入的內容編碼為“UTF-8+”而不是“UTF-8”
outStream.Position = 3
outStream.CopyTo binStream
binStream.SaveToFile fileSaveName, 2 '需要將內容偏移兩位去掉“UTF-8+”的bom,fileSaveName為寫入資料的檔案路徑和名字
binStream.Close
outStream.Close
End Sub