FileSystemObject

フォルダを削除する【DeleteFolderメソッド】【FileSystemObject】【ExcelVBA】

構文

Object.DeleteFolderfolderspec [, force] 

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

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

Public Sub sample()
    '■FileSystemObjectの宣言
     Dim fso As Object:Set fso = CreateObject("Scripting.FileSystemObject")
    
    '■読み取り専用ファイルも含めて削除
    fso.DeleteFolder "C:\vba", True
    
    '■読み取り専用ファイルがあれば削除しない。→実行時エラー70 書き込みできませんを表示
    fso.DeleteFolder "C:\vba", False
    
    '■末尾が\だと実行時エラー76パスが見つかりません
    fso.DeleteFolder "C:\vba1"
End Sub

注意点

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

関連記事

コメント

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