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

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

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

PR

VBAコード

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

読み取り専用の設定をしたファイル「aiueo.txt」
読み取り専用の設定をしたファイル「aiueo.txt」
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
        '削除
        fso.deleteFile fileFullPath, True
    End If
    
    '後片付け
    Set fso = Nothing
    
End Sub

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

「FileSystemObject」の「deleteFile」メソッドを
 ・第2引数にTrueを指定
することで、読み取り専用ファイルを削除します(16行目)。
※読み取り専用でないファイルも削除できます。

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

PR

備考(Killステートメントについて)

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

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

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

PR

参考①

「ステートメント」の詳細は以下の記事をご確認ください。

PR

参考②

読み取り専用ファイルが格納されたフォルダも削除できます。

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

PR

参考③

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

PR

参考④

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

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