(1)
>1___abcd__________[ 空欄 ]____efgh
のようにする場合は、
Print #1, "abcd"
のところを、
Print #1, "abcd" & "," & "" & "," & "efg" & ","
のようにします。つまり、abcd、空欄、efgをカンマで
区切りながら行に入れていきます。
(2)
>教えていただいたコードですとファイルを開いて書き
>込む?ような気がするのですが
コードを実行すると、そのたびにファイルを新規に
作成するようになっています。つまり、
Open CurrentProject.Path & "\aaa.csv" For Append Access Write As #1
において、aaa.csv というcsvファイルを毎回新規に
作成します。Openとありますが、もし、同じ名前の
csvファイルがあれば、保存するときに上書きの
確認を求められます。もしaaa.csvというファイルが
なければ新規に作成するという仕様になっています。
(3)
>毎回同じ形式でファイルを作成したい場合、一度空白
>のテーブルをエクスポートしその後、上記のコードを
>書けば良いのでしょうか??
(2)の通りなので、出力したcsvファイルを名前を変えて
保存すればいいのでは、と思います。
(4)
>テキスト形式にする場合は拡張子を”.txt”に
>変更するだけで良いのでしょうか??
はい、です。
直接テキストにすることも出来ますが
いろいろと面倒なことが出てくる可能性があるので
一旦、csvファイルにしてテキストに変更するのが
いいのでは、と思います。
追加
すこし、手の込んだことをことするならば、
ファイル名を任意の名前にすることもできます。
インプットボックスに 2月1日の資料 と入れると、
2月1日の資料.csv というcsvファイルができます。
追加の部分も一緒にしてまとめてみると、
Sub test()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim ret As Variant
'(追加の部分)ファイル名の入力。入力がなかったり
'キャンセルならば出力せずに終了
ret = InputBox("保存するときのファイル名を入力してください。")
If StrPtr(ret) = 0 Then Exit Sub
If ret = vbNullString Then Exit Sub
Set db = CurrentDb
Set rs = db.OpenRecordset("テーブル1", dbOpenDynaset)
Open CurrentProject.Path & "\" & ret & ".csv" For Append Access Write As #1
'先頭に挿入
Print #1, "abcd" & "," & "" & "," & "efg" & ","
'テーブルデータを追加
Do Until rs.EOF
Print #1, rs!商品番号 & "," & rs!価格 & "," & rs!名前 & ","
rs.MoveNext
Loop
Close #1
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub
です。ファイル名の入力が必要がなく、毎回固定の名前で出力するならば、
追加の部分を削除して、
Open CurrentProject.Path & "\" & ret & ".csv" For Append Access Write As #1
のところを、
Open CurrentProject.Path & "\aaa.csv" For Append Access Write As #1
にして、aaaを適当な名前にしてください。
何かあれば、補足してください。
お礼
完璧です!!!! 助かりました^^ 長々と、本当にありがとうございましたm(__)m