• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UTF-8のテキストファイルを開く方法)

UTF-8のテキストファイルを開く方法

このQ&Aのポイント
  • VBAを使ってUTF-8のテキストファイルを開く方法について教えてください。
  • FSOを使用してテキストファイルを開くと文字化けしてしまいます。ADODB.Streamを使ってUTF-8で開く方法を教えてください。
  • Openステートメントを使用してテキストを開いた場合は、デフォルトでS-JISです。UTF-8に変更する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

とりあえず一例です 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

Kazu_creator
質問者

お礼

ありがとうございます!UTF-8のファイルを開くことができました。 ところで、.ReadText の引数が「-2」となっていますが、こうすると1行ごとに読み込むということになるのでしょうか。 以下のMSDNのページでもそのあたりが説明されていないのですが、どこで調べたらそういうことが判るでしょうか(Typeプロパティについても同様です)。 http://msdn.microsoft.com/ja-jp/library/cc364207.aspx とにかく、非常に助かりました。 ありがとうございます。

その他の回答 (2)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

#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 です。

Kazu_creator
質問者

お礼

ご丁寧にありがとうございました。 「StreamReadEnum」のリンクを開いたら「-2」がどういう意味だか書いてありました。 勉強になります。

  • zant
  • ベストアンサー率25% (7/28)
回答No.1

Readlineというメソッドは存在しません。

参考URL:
http://msdn.microsoft.com/ja-jp/library/cc364273.aspx

関連するQ&A