テキストファイルに書き込む
Sub テキストファイルに書き込む()
Dim myCon As New ADODB.Connection, myRS As New ADODB.Recordset
Dim myExcelFile As String, myTbl As String, myTxtFile As String
'データのあるExcelファイル
myExcelFile = ThisWorkbook.Path & "\xls\DataBook.xls"
'書き出すデータ
myTbl = "select * from [伝票一覧$] where 担当者 = '増田';"
'テキストファイル名
myTxtFile = ThisWorkbook.Path & "\txt\増田担当一覧.csv"
'エクセルに接続
With myCon
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Extended Properties") = "Excel 8.0"
.Open myExcelFile
End With
'レコードセットオブジェクトにテキストファイルの内容を格納
myRS.Open myTbl, myCon
'テキストファイルに書き出し
Open myTxtFile For Output As #1
Print #1, myRS.GetString(adClipString, , ",", vbCrLf)
Close #1
myRS.Close: Set myRS = Nothing
myCon.Close: Set myCon = Nothing
End Sub
GetStringメソッドを使用して文字列として取得し、テキストファイルに書き出す。
引数を次のように指定することでカンマ区切り以外にも対応することができる。
-
GetString(adClipString, , ",", vbCrLf) カンマ区切りの指定
-
GetString(adClipString, , vbTab, vbCrLf) タブ区切りの指定
-
GetString(adClipString, , " ", vbCrLf) スペース区切りの指定
RecordsetをOpenする際は、テーブル名を指定したり、SQLステートメントを使用できる。
このコードだけでは、フィールド見出しを書き出すことはできない。
元となるエクセルのデータ
実行結果

