UTF-8形式にしないといけないのですが、方法が分かりません。
ご存知の方お教え下さい。
win2000pro,excel2003
いちばんシンプルなのは、テキストを漢字コンバータを使ってutf8に変換する方法です。(下記のはコマンドラインで使います):
http://www.vector.co.jp/soft/win95/util/se295331.html
VBA上でutf8でファイル出力するクラスモジュールもあるようです。:
http://www.vector.co.jp/soft/winnt/prog/se320375.html
本ソフトはUTF-8符号化テキストファイル作成のためのVBAクラスモジュールです。
Excel VBAでUTF-8を吐き出す簡易サブルーチンを作ってみました。
UTF8_openでオープン、UTF8_writeで書き込み、UTF8_closeでクローズです。
Option Base 0 Option Explicit Sub test() Dim fn As Integer fn = UTF8_open("c:\temp\utf8.txt") Call UTF8_write(fn, "UTF-8 test" & vbCrLf) Call UTF8_write(fn, "UTF-8テスト" & vbCrLf) Call UTF8_close(fn) End Sub Function UTF8_open(filename As String) As Integer Dim fn As Integer Dim bom(2) As Byte If Dir(filename) <> "" Then Kill filename ' Delete if exists End If fn = FreeFile() Open filename For Binary Access Write As #fn bom(0) = &HEF bom(1) = &HBB bom(2) = &HBF Put #fn, , bom ' Write UTF-8 BOM UTF8_open = fn End Function Sub UTF8_write(ByVal fn As Integer, ByVal data As String) Dim objStm As Object Dim ba() As Byte Set objStm = CreateObject("ADODB.Stream") objStm.Open objStm.Type = 2 'adTypeText objStm.Charset = "utf-8" objStm.WriteText data objStm.Position = 0 objStm.Type = 1 'adTypeBinary objStm.Position = 3 ' Skip BOM ba = objStm.read() Put #fn, , ba objStm.Close Set objStm = Nothing End Sub Sub UTF8_close(ByVal fn As Integer) Close #fn End Sub
URLはダミー
コメント(0件)