Re: ファイル名にワイルドカードが使えない
"前村眞一郎" <shin16june@yahoo.co.jp> wrote in message
news:c6amh0$qif$1@localhost.localdomain...
> との事ですが、要するに私としては日々変化するabc年月日時分秒.csvというファ
イ
> ルをマクロ実行の度に固定したファイル名(今回の場合test_file.txt)に上書き
更
> 新したいのです。拡張子はcsvでも良いのですが。
> 勿論、上書き更新後はabc年月日時分秒.csvは削除するつもりです。
> だから、どこかでワイルドカードを使う必要があると思われます。
それじゃ,例えば
Sub File_Copy()
Dim myFSO As New FileSystemObject
Dim fd As Folder
Dim fs As Files
Dim fl As File
myFSO.CopyFile "d:\temp\abc*.csv", "d:\vba_test"
Set fd = myFSO.GetFolder("d:\vba_test")
Set fs = fd.Files
For Each fl In fs
fl.Copy "d:\vba_test\filetest.txt"
fl.Name = WorksheetFunction.Substitute(fl.Name, ".csv", ".bak")
Next
End Sub
ではどうでしょうか。ただし,最新ファイルがfiletest.txtとしてコピーされる保証
はありませんが。(複数のファイルがあった場合,最後にコピーしたものになる。
フォルダd:\tempにファイルが常に1つなら保証されますが。)
上の場合,上書き更新後はabc年月日時分秒.csvは削除はせず,拡張子を".bak"に変
更して保存するようにしています。
--
******************************
keizi kounoike
******************************
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735