Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


22622 / 76738 ←次へ | 前へ→

【59494】Re:EUC→Unicodeのコード変換
発言  おさっち  - 08/12/13(土) 17:30 -

引用なし
パスワード
   「おさっち」です。

googleで、色々検索しました。

エラーの原因はわかりました。

>out_strm.Read m_byte2

「Read」の使い方が、やはり間違っていたようです。

>m_string2 = in_strm.Read(adReadAll)

とすれば、エラーはでなくなりました。

また、Charsetを有効になるのは、Type = adTypeTextのときだけで、
Type = adTypeTextではだめなようです。


それから、Charset = "SJIS" ではなく、Charset = "Shift_JIS"と書いてあるサイトもありました。

実際のデータベースでは、特定の列のみにEUCの文字が入っているので、そこだけを変換するように考えました。

以上を踏まえて、以下のように変更してみました。


-------------------------------------------------------------

Do Until rs.EOF
 
 j = 1

 For Each m_Field In rs.Fields

  Cells(i, j).Select
   
  If m_Field.Name = "t1" Then
  
    Set in_strm = CreateObject("ADODB.Stream")
    Set out_strm = CreateObject("ADODB.Stream")
      
    in_strm.Charset = "EUC-JP"
    in_strm.Type = adTypeText
   
    out_strm.Charset = "Shift_JIS"
    out_strm.Type = adTypeText
   
    in_strm.Open
    out_strm.Open
                   
    m_byte1 = m_Field.Value
    in_strm.WriteText m_byte1
    in_strm.Position = 0
   
    in_strm.CopyTo out_strm
   
    out_strm.Position = 0
          
    m_string2 = out_strm.ReadText(adReadAll)

    Cells(i, j).Value = m_string2
   
    in_strm.Close
    out_strm.Close
   
    Set in_strm = Nothing
    Set out_strm = Nothing
   
   
   Else
    Cells(i, j).Value = m_Field.Value
   End If   
 
   j = j + 1

  Next m_Field
 
  i = i + 1
 
  rs.MoveNext
Loop

-------------------------------------------------------------

これで、実行時エラーはでなくなりましたが、依然として文字化けはなおりません。

なお、データベースの内容は、EUC形式でダンプして、正常に文字が表示されたので、EUC形式であることは間違いないと思います。

アドバイス、よろしくお願いいたします。

0 hits

【59487】EUC→Unicodeのコード変換 おさっち 08/12/13(土) 1:40 質問
【59488】Re:EUC→Unicodeのコード変換 おさっち 08/12/13(土) 8:45 発言
【59489】Re:EUC→Unicodeのコード変換 neptune 08/12/13(土) 9:49 発言
【59493】Re:EUC→Unicodeのコード変換 おさっち 08/12/13(土) 12:04 質問
【59494】Re:EUC→Unicodeのコード変換 おさっち 08/12/13(土) 17:30 発言
【59496】Re:EUC→Unicodeのコード変換 neptune 08/12/13(土) 20:18 発言
【59498】Re:EUC→Unicodeのコード変換 おさっち 08/12/13(土) 20:39 発言
【59500】Re:EUC→Unicodeのコード変換 neptune 08/12/13(土) 21:17 発言
【59501】Re:EUC→Unicodeのコード変換 neptune 08/12/13(土) 21:44 発言
【59503】Re:EUC→Unicodeのコード変換 kazuyoshikakihara 08/12/14(日) 10:34 回答
【59505】Re:EUC→Unicodeのコード変換 おさっち 08/12/14(日) 16:27 お礼

22622 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free