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

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

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

PR

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で呼び出す
ことで、読み取り専用ファイルを削除できます。
※読み取り専用でないファイルも削除できます。

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

PR

備考(Killについて)

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

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

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

PR

参考

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

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

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