• ベストアンサー

【Excel VBA】ネットワーク上のとあるフォルダの削除

OS:WindowsXP Excel:2003 現在、エクセルVBAで以下の処理を動かしています。 ・コンピューターAのフォルダB内の全ファイルを、  サーバーCのフォルダD内にコピー 今後は逆に、以下の処理を追加したいのです。 ・サーバーCのフォルダEを削除 VBAで可能でしょうか? またその場合は、どのようにコーディングすればよろしいでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • argument
  • ベストアンサー率63% (21/33)
回答No.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のフォルダ削除は強力でゴミ箱などには残らずに完全に削除されます。注意してください。 処理違いや補足・修正が欲しい場合言ってください。

motsu2006
質問者

お礼

お礼が遅くなり、すみませんでした。 myfso.DeleteFolder "C:\" & ye & mo & da, True この一文を流用し、無事解決しました! たいへん参考になりました。 心よりお礼申し上げます。

その他の回答 (1)

  • Gizensha
  • ベストアンサー率34% (207/608)
回答No.1

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

参考URL:
http://officetanaka.net/excel/vba/filesystemobject/file.htm#Delete
motsu2006
質問者

お礼

お礼が遅くなりまして、すみませんでした。 FSOで解決しました! ありがとうございました。

motsu2006
質問者

補足

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

関連するQ&A