ここから本文です

VBAでcsv書き出しのファイル名について

diserockdさん

2014/1/1212:00:40

VBAでcsv書き出しのファイル名について

Dim A As New System.IO.StreamWriter("ファイル名.csv")
というコードでcsv出力させているんですが
処理を行うごとに毎回上書きされてしまいます。
上書きではなく、毎回新しいファイルを作ってほしいのですが、
コードを変えることで可能でしょうか?
Dim A As New System.IO.StreamWriter("ファイル名.csv", True)
で同じファイルの中に追加されるまでは分かったのですが、
のちのデータ整理でできれば一つ一つ独立したデータのほうがありがたいです。
できればファイル名.csv、ファイル名(1).csv、ファイル名(2).csv…となるようにはどうすればいいでしょうか
御教授よろしくお願いいたします

閲覧数:
914
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

2014/1/1300:34:43

こんばんは。

既存のファイル名の数に依って、保存するファイル名を自動的に作成したいのですから、シンプルに該当ファイルの個数を数えて、+1個目となるようにファイル名に添え字をつければよいと思います。
例えば

Dim searchDirectory As String = "(検索するフォルダ名)"
Dim searchTxt As String = "ファイル名*.csv"
Dim searchCount As Long

Dim txtFiles = Directory.EnumerateFiles(searchDirectory, searchTxt)
searchCount = txtFiles.Count
If searchCount = 0 Then
Dim sFile As String = "ファイル名.csv"
Else
Dim sFile As String = "ファイル名(" & CStr(searchCount) & ").csv"
End If

として、sFile をファイル名として既存のコードにつなげればよいかと思います。

この質問は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。