Mac用のExcel 2016でVisual Basic(VBA)を使用してUTF-8ファイルを生成することは可能ですか? エンコードされたXMLまたはTXTファイルを生成する必要があります。あなたが直接、文字列データをダンプすることができるようにMac ExcelでVBAを使用してUTF-8を生成
おかげ
Mac用のExcel 2016でVisual Basic(VBA)を使用してUTF-8ファイルを生成することは可能ですか? エンコードされたXMLまたはTXTファイルを生成する必要があります。あなたが直接、文字列データをダンプすることができるようにMac ExcelでVBAを使用してUTF-8を生成
おかげ
ないUTF-8が、UTF-16は、VBAが内部で使用するものです。
Dim fnum As Integer
fnum = FreeFile()
Open "utf16.txt" For Binary Access Write As fnum
'write UTF-16 Byte Order Marker
'
Put #fnum, 1, &HFE
Put #fnum, 2, &HFF
printLineUtf16 fnum, "Olá Mundo!"
Close #fnum
Function printLineUtf16(fnum As Integer, str As String)
str = str & ChrW(10) 'append newline
Dim data() As Byte 'coerce string to bytes
data = str
Put #fnum, LOF(fnum) + 1, data 'append bytes to file
End Function
これは、ExcelのMacの2011年と2016年に動作するはずです、およびWindowsのバージョン。エディタにUnicode文字列リテラルを入力することはできません。上の "á"のような単純なアクセント付きラテン文字ですが、セルのValue
から割り当てられた文字列はUnicodeで保持されます。
一見すると、うまくいくようです。ファイルを16進数で見ると、Excelは常にビットシーケンス "000A00"を最後に追加することがわかります。これは他のプログラムでエラーにつながります。現状のままです: 'printLineUtf16 fnum、' '' '=' FEFF00E1 000A00'-BE: 'FEFF00E1'それを解決する方法はありますか? –
いいえ、Mac用のExcelでこれを行う方法はありません。完全なExcelクライアントを使用する必要があります。 – TylerH
私はVBAをMacでやっていませんが、直接行うことができない場合は、デフォルトのエンコーディングを使用してテキストファイルを保存してから、AppleScriptがVBAから呼び出されたAppleScriptを使ってエンコーディングを変更できるようにします'AppleScriptTask command':https://msdn.microsoft.com/en-us/library/office/mt654021.aspx –