解決しました
何度もお手数をおかけします。
> 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"に
変
> 更して保存するようにしています。
教えていただいた方法で実現できました。
For Each文があることは知っていましたがこのような使い方があるとは気が付き
ませんでした。
ファイル一覧を取得するだけのものと思っていました。
もっと勉強が必要ですネ。
今回の例は今から作ろうとしているマクロのほんの入り口にしか過ぎませんがますま
す精進します。
でも、どうしてDOSコマンド(正確にはDODのバッチ起動)が使えるように準備
されないのでしょう。
やり方次第ではできるのかも知れませんが。
重ね重ねありがとうございました。
前村 眞一郎
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