この記事では
・フォルダの中に読み取り専用ファイルがあったたとしても、
・フォルダをまるっと削除する方法
を記載します!
削除したいフォルダの
・存在確認を行い、
・存在する場合のみ削除
します!
※存在しないフォルダの削除を試みると、エラーとなるため。
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, True
End If
'後片付け
Set fso = Nothing
End Sub
備考
「FileSystemObject」の「deleteFolder」メソッドの第2引数を省略した場合は、「False」とみなされます。
第2引数にTrueを指定せずに、読み取り専用ファイルが格納されているフォルダの削除を試みると、以下のエラーとなります。
参考①
読み取り専用ファイルの削除もできます。
詳細は以下の記事をご確認ください。
参考②
フォルダの存在有無の確認については、以下の記事をご確認ください。
参考③
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「FileSystemObject」の「deleteFolder」メソッド