この記事では
・フォルダの中にサブフォルダ/ファイルがあっても、
・フォルダをまるっと削除する方法
を記載します!
※フォルダの中が空でなくとも削除する方法を記載します。
削除したいフォルダの
・存在確認して
・存在する場合のみ削除
します!
※存在しないフォルダの削除を試みるとエラーとなるため。
VBAコード
ここでは例として、デスクトップ配下のフォルダ「folder_001」を削除します。
Option Explicit
Sub sample()
Dim fso As Object
Dim folderFullPath As String
'削除するフォルダのパスを指定
folderFullPath = "C:\Users\user\Desktop\folder_001"
Set fso = CreateObject("Scripting.FileSystemObject")
'フォルダの存在確認
If fso.FolderExists(folderFullPath) Then
'削除
fso.DeleteFolder (folderFullPath)
End If
'後片付け
Set fso = Nothing
End Sub
備考(RmDirステートメントを使用したフォルダ削除について)
フォルダの中が空であれば、「RmDirステートメント」でも削除できます。
ですが空でない場合、「RmDirステートメント」でフォルダの削除を試みると以下のエラーが発生します。
エラーメッセージ
パス名が無効です。
フォルダの中身を削除する手間を省くためにも、「FileSystemObject」の「deleteFolder」メソッドの使用をオススメします。
「RmDirステートメント」の使用はオススメしません。
参考①
読み取り専用ファイルが格納されているフォルダを削除するには、ひと工夫が必要です。
詳細は以下の記事をご確認ください。
参考②
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「FileSystemObject」の「deleteFolder」メソッド
参考③
以下の詳細は、公式サイトをご確認ください。
●「RmDirステートメント」