Excel VBA フォルダ内のファイルをすべて削除するサンプル

Excel VBAを使ってフォルダ内のファイルをすべて削除する方法の記録です。

ブログ用に画像を準備して、ブログ完成後にはその画像たちを一気に削除したいけど、フォルダ開いて、全部選択して、Deleteキー押すのが面倒だなと思ったのでサンプルを作ってみました。

Kill」ステートメントを使います。

< スポンサーリンク >





決まったフォルダの中のファイルを全部削除する

いつも決まったフォルダの中のファイルを全部削除する方法です。

ファイルを全部削除

 

フォルダと、「*」(ワイルドカード)で全てのファイルを指定し「Kill」ステートメントで削除します。

Sub sakujo()
    Kill "C:\Users\admin\Desktop\newフォルダ\*"
End Sub

 

ファイル全削除コード

 

実行すると、フォルダの中身が削除されました。

フォルダ内全削除

 

自分のブックのフォルダの中のファイルを全部削除する

自分のブックが保存されているフォルダの中のファイルを全部削除する方法です。

自分のブック以外全削除

 

フォルダの中のファイルで自分のブック名と違う場合は、「Kill」ステートメントで削除します。

Sub sakujo1()
    'このブックのフォルダパス
    Dim DirPath As String
    'ファイルシステムオブジェクト
    Dim FSO As Object
    'ファイルオブジェクト
    Dim FileObj As Object
    'アクティブなファイルオブジェクト
    Dim acFileObj As Object

    'このブックのフォルダパスを変数に入れる
    DirPath = ThisWorkbook.Path
    
    'ファイルシステムオブジェクトのセット
    Set FSO = CreateObject("Scripting.FileSystemObject")
    'フォルダ内のファイルのセット
    Set FileObj = FSO.GetFolder(DirPath).Files
    
    'フォルダ内ファイルループ
    For Each acFileObj In FileObj
        'このブック名と一時ファイル名が違ったら削除
        If acFileObj.Name <> ThisWorkbook.Name And _
            acFileObj.Name <> "~$" & ThisWorkbook.Name Then
            Kill DirPath & "\" & acFileObj.Name
        End If
    Next acFileObj
End Sub

 

自分のブック以外全削除コード

 

実行すると、フォルダの中身の自分のブック以外のファイルが削除されました。

自分のブック以外全削除

 

ダイアログボックスでフォルダを指定してファイルを全部削除する

ダイアログボックスでフォルダを指定してファイルを全部削除します。

Sub sakujo2()
    'フォルダを選択するダイアログボックスを開いて
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = True Then
            '選択されたフォルダの中身を削除
            Kill .SelectedItems(1) & "\*"
        End If
    End With
End Sub

 

ダイアログボックスでフォルダ内を全削除

 

実行すると、ダイアログボックスが出てきましたので、フォルダを指定し[OK]をクリックします。

フォルダ指定

 

フォルダの中身が全部削除されました。

ダイアログボックスでフォルダ内を全削除

 

< スポンサーリンク >※広告先のお問い合わせは広告主様にお願いします