📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルをバックグラウンドで削除する方法

日々の業務の中で、大量の不要なファイルを手動で削除するのは労力と時間を要します。この記事では、Excel VBAを使用して特定のフォルダ内の全てのファイルを高速にバックグラウンドで削除する方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub DeleteFilesInFolder()
    Dim fso As Object, folder As Object, file As Object
    Dim folderPath As String
    
    ' フォルダパスの指定
    folderPath = "C:\指定フォルダパス"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.FolderExists(folderPath) Then
        MsgBox "指定されたフォルダが存在しません。", vbExclamation
        Exit Sub
    End If
    
    Application.ScreenUpdating = False ' 画面更新を停止
    Set folder = fso.GetFolder(folderPath)
    For Each file In folder.Files
        On Error Resume Next
        file.Delete ' ファイルの削除
        On Error GoTo 0
    Next file
    
    Application.ScreenUpdating = True ' 画面更新を再開
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
指定したフォルダパスやファイル名が正しいか確認してください。