初めて自分の家と他人の家が違う、と意識した時

OS:WindowsXP
Excel:2003

現在、エクセルVBAで以下の処理を動かしています。

・コンピューターAのフォルダB内の全ファイルを、
 サーバーCのフォルダD内にコピー

今後は逆に、以下の処理を追加したいのです。

・サーバーCのフォルダEを削除

VBAで可能でしょうか?
またその場合は、どのようにコーディングすればよろしいでしょうか?

よろしくお願いします。

A 回答 (2件)

>一週間以上前のフォルダをフォルダごと削除したいのです。


回答1補足への回答

ye = Year(Date - 7)
mo = Month(Date - 7): If mo < 10 Then mo = "0" & mo
da = Day(Date - 7): If da < 10 Then da = "0" & da
Set myfso = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
myfso.DeleteFolder "C:\" & ye & mo & da, True
On Error GoTo 0
Set myfso = Nothing

上記例ではC:\直下にあるyyyymmdd(形式の7日前)のフォルダを中身に何が入っていようと読み取り専用であろうと削除します。
fsoのフォルダ削除は強力でゴミ箱などには残らずに完全に削除されます。注意してください。

処理違いや補足・修正が欲しい場合言ってください。
    • good
    • 0
この回答へのお礼

お礼が遅くなり、すみませんでした。

myfso.DeleteFolder "C:\" & ye & mo & da, True

この一文を流用し、無事解決しました!
たいへん参考になりました。
心よりお礼申し上げます。

お礼日時:2008/09/30 18:31

たしかVBAからはファイルシステムオブジェクトが使えたとおもいます。



参考URL:http://officetanaka.net/excel/vba/filesystemobje …

この回答への補足

URL、参考になります。
現在はFSOを使って、とあるフォルダ内の全ファイルをコピーさせています。(フォルダ名はJOB DATEをYYYYMMDD形式)
そのままだと、どんどんフォルダができてしまうので、
一週間以上前のフォルダをフォルダごと削除したいのです。

フォルダごと削除するコマンドはないのでしょうか?

補足日時:2008/09/11 10:13
    • good
    • 0
この回答へのお礼

お礼が遅くなりまして、すみませんでした。

FSOで解決しました!
ありがとうございました。

お礼日時:2008/09/30 18:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報