【VBA】読み取り専用ファイルが格納されているフォルダをまるっと削除する

この記事では
フォルダの中に読み取り専用ファイルが格納されていたとしても、
フォルダをまるっと削除する方法を記載します!

削除したいフォルダの存在確認を行い、
存在する場合のみ削除します!
※存在しないフォルダの削除を試みると、エラーとなるため。

VBAコード

ここでは例として、デスクトップ配下の読み取り専用ファイルが格納されている
フォルダ「folder_001」を削除します。

「FileSystemObject」の「deleteFolder」を
 ・Callで呼び出す
 ・第2引数にTrueを指定
することで、読み取り専用ファイルが格納されているフォルダを削除できます。

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
        '削除
        Call fso.deleteFolder(folderFullPath, True)
    End If
    
    '後片付け
    Set fso = Nothing
    
End Sub

備考

「FileSystemObject」の「deleteFolder」の第2引数を省略した場合は、「False」とみなされます。

第2引数にTrueを指定せずに、読み取り専用ファイルが格納されているフォルダの削除を試みると、以下のエラーとなります。

タイトルとURLをコピーしました