【VBA】読み取り専用ファイルを削除する

この記事では
読み取り専用ファイルを削除する方法を
記載します!

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

VBAコード

ここでは例として、デスクトップ配下の読み取り専用ファイルを削除します。

「FileSystemObject」の「deleteFile」を
 ・Callで呼び出す
 ・第2引数にTrueを指定
することで、読み取り専用ファイルを削除できます。
※読み取り専用でないファイルでも削除されます。

Option Explicit

Sub sample()
    
    Dim fso As Object
    Dim fileFullPath As String
    
    '削除するファイルのパスを指定
    fileFullPath = "C:\Users\user\Desktop\aiueo.txt"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'ファイルの存在確認
    If fso.FileExists(fileFullPath) Then
        '削除
        Call fso.deleteFile(fileFullPath, True)
    End If
    
    '後片付け
    Set fso = Nothing
    
End Sub

上記で削除すると、ゴミ箱に残らず完全に削除されます。

備考(Killについて)

読み取り専用でないファイルならば、Killでも削除できます。
読み取り専用ファイルの削除をKillで試みると、以下のエラーとなります。

読み取り専用でないファイルをKillで削除した場合も、ゴミ箱に残らず完全に削除されます。

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