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]をクリックします。
フォルダの中身が全部削除されました。
こんな記事も書いています