プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。

Excel2000~2003ファイルで、
(現在、Excel2000ファイルを受け取って、
 Excel2007上で互換モードとしてVBA作成中)
で、ワークシート内容を、
「UTF-8のBOM付き」で、
VBAで、
(出来ましたらFSOを利用して)
CSV出力する方法が知りたいです。

ネット上を探すとCSV出力する方法は、
いろいろありましたが、
サンプルを試しに動かして出力されたCSVファイルの
文字エンコードはShift-JISでした。

以上になります。
よろしくお願いします。

A 回答 (1件)

もし、今まで調べられたサンプルコードで得られたファイルが


Shift-Jis であっても文字化けなどが発生していなくて
問題が文字コードだけであるなら下記のように変換してしまえば?
投稿用にタブインデントを全角スペースに変換しています。

Sub adodbStream()
'要参照設定ActiveX DataObject Library 2.5以上
  Dim strmFrom As ADODB.Stream
  Dim strmTo As ADODB.Stream
  Dim strTmp As String
  
  Set strmFrom = New ADODB.Stream
  Set strmTo = New ADODB.Stream
  Set fS = CreateObject("Scripting.FilesystemObject")
  
  With strmFrom
    .Charset = "Shift_JIS"
    .LineSeparator = adCRLF
    .Open
    .LoadFromFile "D:\標準地域コード.csv"
  End With
  
  With strmTo
    .Charset = "UTF-8"
    .LineSeparator = adCRLF
    .Open
  End With

  strTmp = strmFrom.ReadText(adReadAll)
  strmTo.WriteText strTmp
  strmTo.SaveToFile "D:\標準地域コードUTF.csv", adSaveCreateOverWrite
  strmTo.Close: Set strmTo = Nothing
  strmFrom.Close: Set strmFrom = Nothing
End Sub

"D:\標準地・・・・関連の所は使いやすいようにそちらで改造してください。
    • good
    • 0
この回答へのお礼

nicotinism 様

お陰様をもちまして、
無事にUTF-8で出力することができました。

大変丁寧で詳細な
ご回答をいただきまして、本当に助かりました。
本当にありがとうございました。

お礼日時:2012/06/27 21:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!