VBAで特定の文字列を含むファイルを削除する関数を作ってみた

2011年11月11日金曜日

tips vba

t f B! P L
○○という文字列を含むファイルは全て削除したい、という要件に応える関数。

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の内のすべてのファイルを削除する。

あとはめも
ファイルを削除できない場合は、そのままにして次の処理にうつる。
削除対象のファイルを開いている場合などは、削除できないし、エラーにもならないので注意。

QooQ