- ベストアンサー
UTF-8のテキストファイルを開く方法
- VBAを使ってUTF-8のテキストファイルを開く方法について教えてください。
- FSOを使用してテキストファイルを開くと文字化けしてしまいます。ADODB.Streamを使ってUTF-8で開く方法を教えてください。
- Openステートメントを使用してテキストを開いた場合は、デフォルトでS-JISです。UTF-8に変更する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず一例です Sub test() Dim mystream As Object Dim i As Long Const adTypetext As Long = 2 Const adReadLine As Long = -2 Set mystream = CreateObject("ADODB.Stream") mystream.Type = adTypetext mystream.Charset = "UTF-8" mystream.Open mystream.LoadFromFile ("C:\hoge.txt") i = 1 Do Until mystream.EOS Cells(i, 1).Value = mystream.ReadText(adReadLine) i = i + 1 Loop mystream.Close Set mystream = Nothing End Sub
その他の回答 (2)
- mitarashi
- ベストアンサー率59% (574/965)
#2です。真面目に捜してみました。下記からが良いでしょう。 Typeプロパティは、規定値がadTypeTextなので、あえて指定しなくても良さそうです。 http://msdn.microsoft.com/ja-jp/library/cc408215.aspx ADO API リファレンス └ADO オブジェクト └Stream オブジェクト └Stream オブジェクトのプロパティ、メソッド、およびイベント ├Type プロパティ (ADO Stream) │└Stream オブジェクトに格納されたデータの種類を表す StreamTypeEnum の値を設定します。 └ReadText メソッド └パラメータ NumChars 省略可能です。ファイルから読み取る文字数を指定する長整数型 (Long) の値、または StreamReadEnum 値を指定します。既定値は adReadAll です。
お礼
ご丁寧にありがとうございました。 「StreamReadEnum」のリンクを開いたら「-2」がどういう意味だか書いてありました。 勉強になります。
- zant
- ベストアンサー率25% (7/28)
Readlineというメソッドは存在しません。
お礼
ありがとうございます!UTF-8のファイルを開くことができました。 ところで、.ReadText の引数が「-2」となっていますが、こうすると1行ごとに読み込むということになるのでしょうか。 以下のMSDNのページでもそのあたりが説明されていないのですが、どこで調べたらそういうことが判るでしょうか(Typeプロパティについても同様です)。 http://msdn.microsoft.com/ja-jp/library/cc364207.aspx とにかく、非常に助かりました。 ありがとうございます。