#594 | UTF-8やEUC形式のテキストファイルを読み込むには? | VBA | |
通常のVBAによるテキストファイルからのデータ読み込み(Line Input命令など)では、キャラクタコードを指定するパラメータなどはなく、Shift-JIS形式のつもりで読み込まれます。もしそのテキストファイルがUTF-8やEUCといった形式で保存されている場合、VBAの処理上、文字化けしてしまいます。 そのような場合、ADOの「Stream」オブジェクトを利用します。 このオブジェクトでは「Charset」プロパティを任意に設定することで、キャラクタコードを指定してテキストファイルを読み込むことができます。UTF-8やEUCといった形式でディスク上に保存されているテキストファイルを「LoadFromFile」メソッドで読み込み、通常のShift-JISのデータとして内部処理することができます。 次の例では、ディスク上にあるUTF-8形式の「UTF-8形式.txt」およびEUC形式の「EUC形式.txt」ファイルを丸ごと読み込んで、その内容をイミディエイトウィンドウに出力しています。 Dim strm As New ADODB.Stream Dim strData As String With strm 'キャラクタコードを設定 .Charset = "UTF-8" 'Streamオブジェクトを開く .Open 'テキストファイルをStreamオブジェクトに読み込み .LoadFromFile "D:\DATA\UTF-8形式.txt" 'Streamオブジェクトの内容を変数strDataに読み込み strData = .ReadText '変数strDataの内容をイミディエイトウィンドウに出力 Debug.Print strData 'Streamオブジェクトを閉じる .Close: Set strm = Nothing End With With strm .Charset = "EUC-JP" .Open .LoadFromFile "D:\DATA\EUC形式.txt" strData = .ReadText Debug.Print strData .Close: Set strm = Nothing End With |
|||
|
Copyright © T'sWare All rights reserved |