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

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

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

PR

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

フォルダを削除する前に、フォルダの存在有無をしています(14行目)。
※存在しないフォルダの削除を試みるとエラーになるため

「FileSystemObject」の「deleteFolder」メソッドを
 ・第2引数にTrueを指定
することで、読み取り専用ファイルが格納されているフォルダを削除できます(16行目)。

PR

備考

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

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

エラーメッセージ
エラーメッセージ
PR

参考①

読み取り専用ファイルの削除もできます。

詳細は以下の記事をご確認ください。

PR

参考②

フォルダの存在有無の確認については、以下の記事をご確認ください。

PR

参考③

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「FileSystemObject」の「deleteFolder」メソッド