- ベストアンサー
【Excel VBA】古いファイルを削除する
Excel2003を使用しています。 ファイルを保存する際に、ファイル名の後に日付を入れて保存したく、下記のようにコードを書きました。 それで、保存するときに、古いファイルは削除するようにしたいのですが、どのようにコードを追加すればいいでしょうか? Killを使用するのかな~?とは思っているのですが。。。 よろしくお願いします。 -------------------------------------------------- Sub 保存() ActiveWorkbook.SaveAs _ "C:\○○\××" & Format(Date, "yyyymmdd") & ".xls" End Sub
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでしょうか? Sub test() tbn = ThisWorkbook.FullName ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\○○○\××\" & Format(Date, "yyyymmdd") & ".xls" Kill tbn End Sub
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
>古いファイルは削除するよ・・・ プログラムを組もうとする人が、「古い」というようなあいまいな言い方をしていてどうする。 上書き保存してはどうですか 1度だけ前のファイルは保存してある場合 何かの事情でXXyyyymmddの名前のファイルが溜まっていて それらを一掃する などごれですか。基本的には限定したフォルダなりの中のエクセルブックを全部調べて(注)、チェックし、条件に外れるものは削除なんでしょう。 (注)WEBでコード例アリ。 「フォルダ Dir」で照会 http://www.accessclub.jp/samplefile/samplefile_209.htm 他多数 「VBSCRIPT フォルダ」で照会 http://www.atmarkit.co.jp/fwin2k/operation/wsh11/wsh11_01.html 他多数
お礼
アドバイスありがとうございます。 “古い”という表現がわかりづらくしたようで、申し訳ありません。 ANo.1の方のお礼欄にも書かせていただきましたが、マクロを実行するとファイルが増えていくので、更新前のファイルは、その都度削除したかったのです。 おかげさまで、ANo.3の方からのご回答を参考にさせていただき、希望通りのことができました。 お手数をおかけしました。
- meet_again
- ベストアンサー率36% (41/111)
消す前に、ActiveWorkbook.Nameで今のファイル名を取得しておいては いかがでしょうか? んで、今のファイルと新しく保存するファイルが違う場合(別の日付で更新した場合)のみ、過去のファイルを削除。 Sub 保存() Dim myfile As String Dim newname As String Dim pass As String myfile = ActiveWorkbook.Name newname = Format(Date, "yyyymmdd") & ".xls" pass = "C:\○○\××" ActiveWorkbook.SaveAs _ pass & newname If newname <> mayfile Then Kill pass & myfile End If End Sub
お礼
回答ありがとうございます。 記載していただいたコードを参考にさせていただき、希望通りのことができました。 ありがとうございました。
- n-jun
- ベストアンサー率33% (959/2873)
”古い”がどの位を差すのかわからないですが、 過去に回答した事のある http://okwave.jp/qa3659813.html とかは、参考になりませんか?
お礼
回答ありがとうございます。 “古い”という表現がわかりづらかったようで、申し訳ありません。 ファイルを更新したら、更新前のファイルを削除したかったのです。 質問文に記載しているコードだけでは、マクロを実行する度に、ファイルが増えるので、“古い”ファイルは削除するようにと書いてしまいました…。 教えていただいたURL、参考になりました。 ありがとうございました。
お礼
回答ありがとうございます。 教えていただいたコードを参考にさせていただき、さらに条件(日付が同じ場合は削除しない)を 加えることで、希望通りのことができました。 ありがとうございました。