こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

文字コードの違うファイルインポート

こんにちわ。
いつもお世話になっています。

文字コードの違うcsvファイルをTransferTextでインポートしたいのですが
いい方法がなく困っています。

ご存知の方、ご教示下さい。

【経緯】
csvファイルはインターフェイス上では文字コードが「unicode」
で設定されているとの事でした。

mdbにてファイルのインポートを行うと文字化けするのでインポート定義を
設定してみた所、「UTF-8」だけが日本語にできたました。
しかし、インポートしてみるとカラム数が12個あったのに対して9個しか
取込できませんでした。

そこでそのcsvをエディタにて「名前を付けて保存」→文字コードを「SJIS」に変更して
保存し直しました。
その保存し直したcsvを読込するとカラム数も12個で文字も日本語でインポート
できました。


どうしてもVBAでコマンドボタンを押下してインポートしたいのですが
いい方法が見つかりません。

お知恵をお貸し下さい。

よろしくお願い致します。

投稿日時 - 2008-01-10 10:59:14

QNo.3666479

困ってます

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

UTF-8をShift_jisにファイル変換するVBAです。
参照設定:Microsoft ActiveX Data Objects ?.? Object Library
が必要です

Sub convUTF8(iFile As String, oFile As String)
Dim iStm As New ADODB.Stream
Dim oStm As New ADODB.Stream
With iStm
.Open
.Charset = "UTF-8"
.Type = adTypeText
.LoadFromFile iFile
End With
With oStm
.Open
.Charset = "Shift_JIS"
.Type = adTypeText
iStm.CopyTo oStm
.SaveToFile oFile, adSaveCreateOverWrite
End With
iStm.Close
oStm.Close
Set iStm = Nothing
Set oStm = Nothing
End Sub

Sub test()
Dim iFile As String
Dim oFile As String
iFile = "c:\test1.txt"
oFile = "c:\test2.txt"
convUTF8 iFile, oFile
End Sub

投稿日時 - 2008-01-11 07:37:42

補足

ありがとうございます。

早速、記述後に実行してみた所「オブジェクトが必要です。」のデバックが発生しました。

参照設定はMicrosoft ActiveX Data Objectsだけでよろしいのでしょうか??

ご回答よろしくお願い致します。

投稿日時 - 2008-01-11 10:34:11

お礼

fumufumu_2006さま

失礼致しました。
当方の記述が誤っておりました。

上記、ソースでうまくできました。

本当に助かりました。
ありがとうございました。

投稿日時 - 2008-01-11 10:46:41

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問