- 締切済み
VBAでUTF-8文字を読込、Excelに出力する方法
タイトルの通りです。 簡単なプログラムを作ってみました。 このような事は出来ないのでしょうか。 教えてください。 宜しくお願いします。 ☆サンプルプログラム☆ ↓ Sub test() Dim Stm As Object Dim sText As String Const adCRLF = -1 Const adReadAll = -1 Const adTypeText = 1 sText = "あああ" Set Stm = CreateObject("ADODB.Stream") Stm.Open Stm.Charset = "UTF-8" Stm.WriteText sText ActiveSheet.Range("A1").Value = Stm.ReadText() Stm.Close Set Stm = Nothing End Sub
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。KenKen_SP です。 UTF-8 で書かれたテキストファイルの文字列を読み込んでコードを 試してみましたが、そのまま動きましたね、、意図は何ですか? Excel2000 以上なら Unicode 対応してますので、Excel内部でのみの 処理なら特に問題はないと思います。理由があって別のキャラセット に変換するならもう一つ ADOBE.Stream を CreateObject し、そちら の Charset を変換したいキャラセットに設定してから、WriteText するなり、CopyTo すればいいです。 こんな感じ。 Sub CONVERT_CHARSET() '参照設定するなら:Microsoft ActiveX Data Objects x.x Library Dim SRC As Object Dim DST As Object Dim strFILEPATH As String Const adTypeText = 2 strFILEPATH = Application.GetOpenFilename("TEXTファイル (*.txt), *.txt") If UCase$(strFILEPATH) = "FALSE" Then Exit Sub Set SRC = CreateObject("ADODB.Stream") With SRC .Open .Charset = "UTF-8" .Type = adTypeText .LoadFromFile strFILEPATH .Position = 0 End With Set DST = CreateObject("ADODB.Stream") With DST .Open .Charset = "Shift_JIS" .Type = adTypeText End With SRC.CopyTo DST DST.Position = 0 ActiveSheet.Range("A1").Value = DST.ReadText() SRC.Close DST.Close Set SRC = Nothing Set DST = Nothing End Sub