Path: ccsf.homeunix.org!ccsf.homeunix.org!news1.wakwak.com!nf1.xephion.ne.jp!onion.ish.org!news.daionet.gr.jp!news.yamada.gr.jp!newsfeed.media.kyoto-u.ac.jp!newsfeed.mesh.ad.jp!jpix!giga-nspixp2!news-gw1.ocn.ad.jp!news-gw2.ocn.ad.jp!nd-tk001.ocn.ad.jp!news1.synapse.ne.jp!not-for-mail From: "=?iso-2022-jp?B?GyRCQTBCPBsoQg==?=" Newsgroups: fj.comp.applications.excel Subject: =?iso-2022-jp?B?GyRCMnI3aCQ3JF4kNyQ/GyhC?= Date: Fri, 23 Apr 2004 22:59:43 +0900 Organization: Synapse Internet Service NEWS1 Lines: 41 Message-ID: References: NNTP-Posting-Host: 43.125.215.220.ap.yournet.ne.jp Mime-Version: 1.0 Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit X-Trace: news1.synapse.ne.jp 1082728364 10538 220.215.125.43 (23 Apr 2004 13:52:44 GMT) X-Complaints-To: root@news1.synapse.ne.jp NNTP-Posting-Date: Fri, 23 Apr 2004 13:52:44 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2919.6600 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600 Xref: ccsf.homeunix.org fj.comp.applications.excel:175 何度もお手数をおかけします。 > 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のバッチ起動)が使えるように準備 されないのでしょう。 やり方次第ではできるのかも知れませんが。 重ね重ねありがとうございました。 前村 眞一郎