EXCEL、VBA

【VBA】フォルダを削除する

 

フォルダを削除する構文

フォルダを削除する構文は次のとおり。FileSystemObjectを使用します。

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
fso.deleteFolder "フォルダのパス"  'フォルダパスを指定する"C:\test"など
Set fso = Nothing

 

フォルダを削除する

指定したフォルダを削除する関数です。

引数 folderPath : 削除するフォルダのパス(文字列)

戻り値 True:削除成功、False:削除失敗

補足:ファイルパスの最後は\あり・なしどちらでも可。削除したいフォルダに、ファイル・サブフォルダがあっても丸ごと削除します。削除したいフォルダのファイルを、別のプログラム等がつかんでいるとエラーが発生しFalseが返ります。

Public Function deleteFolder(ByVal folderPath As String) As Boolean

On Error GoTo Catch
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.deleteFolder folderPath
    Set fso = Nothing
    
    deleteFolder = True  '正常終了
    Exit Function
    
Catch:
    deleteFolder = False
End Function

 

実行例

Debug.Print deleteFolder("C:\test\1")
' True

Debug.Print deleteFolder("C:\test\2")
' False