FileSystemObject

ファイルを削除する【DeleteFileメソッド】【FileSystemObject】【ExcelVBA】

構文

Object.DeleteFilefilespec [, force] 

filespec・・・削除するファイルパスを指定 削除するファイルパスはワイルドカード指定可能。
force・・・・・読み取り専用をファイルを削除 True→する/False→しない 省略時Falseが初期値
filespecで指定したフォルダを削除します。
forceをFalseにした場合は読み取り専用ファイルがあった場合、エラー発生しファイル削除できません。

DeleteFileメソッドのサンプルコード

Public Sub sample()
    '■FileSystemObjectの宣言
    Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")

    '■読み取り専用ファイルも含めて削除
    fso.DeleteFile "C:\vba1\sample.xlsx", True
    
    '■読み取り専用ファイルがあれば削除しない。
    fso.DeleteFile "C:\vba1\aaa.png", False
    
    '■ワイルドカード使用して、該当ファイルすべて削除
    fso.DeleteFile "C:\vba1\*.png"
End Sub


注意点

  • ファイルが存在しなければエラー発生します。FileExistsで事前確認必要です。
    実行時エラー53「ファイルが見つかりません。」
  • force=False時、読み取りファイルが存在すれば、削除できずエラー発生します。
    実行時エラー70「書き込みできません。」
  • つまり、FolderDeleteメソッドはファイル削除→フォルダ削除の流れです。

関連記事

コメント

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