ここから本文です

VBAで1階層下のフォルダを削除したいです。

takuya1894さん

2011/5/3012:37:28

VBAで1階層下のフォルダを削除したいです。

例えばCドライブの下に画像フォルダがあるとします。
画像フォルダの中にはサブフォルダの画像1フォルダ。画像2フォルダ、画像3フォルダ・・・
となっており、
サブフォルダのなかにはサブサブフォルダのフォルダ1、フォルダ2・・・またこの中にはjpgファイルなどもあります。
VBAで一階層目のフォルダ(サブフォルダだけ)を省きたいのですがかのうですか?

処理前と処理後の画像もアップしました。
なお、サブサブフォルダの中にあるフォルダ1,フォルダ2・・・や データ1.jpg やデータ2.jpg などは重複する名前はありません。

よろしくお願いします。

補足なお、サブサブフォルダの中のフォルダ1、フォルダ2・・・にはデータが入っておりますのでデータも消さずにお願いしたいです。

サブサブフォルダ,画像フォルダ,VBA,フォルダ1,データ,INFLD,Set InitFLD

閲覧数:
1,201
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

riv********さん

編集あり2011/5/3111:11:01

基本的な操作としては
画像フォルダ1,2,3から画像フォルダにファイルを移動して画像フォルダ1,2,3を削除する。
Sub Subfolderdel()
Dim fso, InitFLD, FLDS, FLD
INFLD = "D:\test" '対象となるフォルダー
Set fso = CreateObject("Scripting.FileSystemObject") 'FileSystemObjectを使用します。
Set InitFLD = fso.getfolder(INFLD) '対象フォルダをGet
Set FLDS = InitFLD.subfolders 'サブフォルダーコレクションを取得
For Each FLD In FLDS 'それぞれにサブフォルダーについて
fso.movefile FLD.Path & "\*.*", InitFLD.Path & "\" '全てのファイルを上位フォルダーに移動
Next '繰り返し
'以下サブフォルダーの削除
For Each FLD In FLDS
FLD.Delete
Next
End Sub
対象フォルダー名(”D:\test”)を書き換えて、バックアップをとってから試してください。

質問した人からのコメント

2011/6/1 20:07:14

成功 ありがとうございました。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる