VBA:[Tips]UTF-7の文章を読み込む

まだとちゅう

なにがどう

文字コードUTF-7の文字列をエクセルで表示しようとすると文字化けしてしまい読むことができない

なぜか

エクセルで読み込みできる文字コードがUnicodeまたはSift-JISであるため

どうするのか

ADODB.Streamを用いて指定文字コード以外の文字コードを読み込みできるようにする。
読み込み時に文字コードを自動判別して読み取るように設定
Charset = "_autodetect"

以下、コード
Sub main()
   Dim txt As Object
   Set txt = CreateObject("ADODB.Stream")
   Dim row As Integer
   Const adReadLine As Long = -2 '行ごと読む
   row = 1
   txt.Type = 2
   txt.Charset = "_autodetect"
   txt.Open
   
   txt.LoadFromFile ("ファイルパス")
   
   Do While Not txt.EOS
       
       Cells(row, 1) = txt.ReadText(adReadLine)
       row = row + 1
   Loop
   
   txt.Close
End Sub

adReadLine…一行ずつ出力する

備考

この方法である程度の文字変換はできるようになるけれど一部文字化けが発生する。
最終更新:2015年07月30日 13:26