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

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

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

VBAコード

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

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

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

ゴミ箱に残らず完全に削除されます。

備考(Killについて)

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

Killで削除した場合も、ゴミ箱に残らず完全に削除されます。

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