VBAで特定の文字列を含むファイルを削除する関数を作ってみた
○○という文字列を含むファイルは全て削除したい、という要件に応える関数。
sDir:削除したいファイルが含まれているディレクトリ。最後の"\"は不要。
sSearchName:検索対象の文字列。ここで指定した文字列を含むファイルを削除する。
指定しない場合、sDirの内のすべてのファイルを削除する。
あとはめも
ファイルを削除できない場合は、そのままにして次の処理にうつる。
削除対象のファイルを開いている場合などは、削除できないし、エラーにもならないので注意。
Sub killRTFile(ByVal sDir As String, Optional ByVal sSearchName As String = "")
Dim sFileName As String
If dir(sDir, vbDirectory) = "" Then Exit Sub
sFileName = dir(sDir & "*.*", vbNormal)
Do While sFileName <> ""
On Error Resume Next
If InStr(sFileName, sSearchName) > 0 Or sSearchName = "" Then Kill sDir & sFileName
sFileName = dir()
Loop
End Sub
sDir:削除したいファイルが含まれているディレクトリ。最後の"\"は不要。
sSearchName:検索対象の文字列。ここで指定した文字列を含むファイルを削除する。
指定しない場合、sDirの内のすべてのファイルを削除する。
あとはめも
ファイルを削除できない場合は、そのままにして次の処理にうつる。
削除対象のファイルを開いている場合などは、削除できないし、エラーにもならないので注意。