EXCEL VBAでのCSVファイル読み込み、出力で困っています。
EXCEL VBAでのCSVファイル読み込み、出力で困っています。
データ3件のファイルから3件抽出すると正常にイミディエイトウィンドウへ表示されるのですが
データ約38,000件のファイルから3件抽出すると文字化けする項目があるのです。
文字化けする項目の共通点は256文字以降が、どうやら化けているようです。(長文1、長文2の項目)
教えて!goo でいろいろ探してみましたが、これといった解決策が見つかりませんでした。
また、抽出データをCSVで出力しているのですが
始まりと終わりに " が出力されるので困っています。
" が出力されないようにできるのでしょうか?
当方、COBOLでのコーディング経験は実務で4年ほどありますが
VBAの知識は学校で少し学んだ程度の初心者です。
わかりやすく教えていただけないでしょうか?
sample1.csv データ3件
sample2.csv データ約38,000件(ここにsample1.csvと同じデータが含まれています)
Dim adoCON As New ADODB.Connection
Dim adoRS As New ADODB.Recordset
Dim rec As String
'ADOを使い読み込み専用モードでCSVファイルを扱う準備(オープン)をします
adoCON.Open "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & _
"DBQ=c:\Documents and Settings\デスクトップ\test;" & _
"ReadOnly=1"
Open "C:\Documents and Settings\デスクトップ\test\test.csv" For Output As #1
'SQLを実行し、指定したIDのデータを抽出します
'ID,名前,,,,,,,,,,,長文1,長文2,,,,,,更新日時 ←こんな感じで20項目
Set adoRS = adoCON.Execute("select * from sample1.csv where (ID = 213428) or (ID = 212717) or (ID = 212917)")
'SQLの実行結果をデータが無くなるまでrecへ格納します
Do Until adoRS.EOF = True
rec = rec & adoRS("ID") & "," & adoRS("名前") & "," & adoRS("長文1") & "," & adoRS("長文2") & Chr(10)
'カーソルを次の行へ
adoRS.MoveNext
Loop
'recの内容をイミディエイトウィンドウへ表示
Debug.Print rec
'recの内容を出力
Write #1, rec
'CSVファイルをクローズします
Close #1
'レコードセットをクローズします
adoRS.Close
'データベースのクローズ
adoCON.Close
お礼
ご指摘のとおりでした。 出力先をC:\CSV DATA\...に設定し直したら、うまく出力できるようになりました。 Windows7の書き込み権限の仕様についてよく把握しておりませんでした。 これでまた効率よく業務を進めることができます。 ありがとうございました!