Public Sub RmDir(ByVal vsFolder As Variant)
Dim sName As Variant
Dim oKillElements As Collection
On Local Error Resume Next
If VarType(vsFolder) <> vbString Then
Err.Raise 5
Else
If Right$(vsFolder, 1) = "\" Then
vsFolder = Left$(vsFolder, Len(vsFolder) - 1)
End If
Set oKillElements = New Collection
sName = Dir$(vsFolder & "\*.*", vbDirectory Or vbReadOnly Or vbHidden Or vbSystem)
Do While Len(sName)
If (sName <> "..") And (sName <> ".") Then
oKillElements.Add vsFolder & "\" & sName
End If
sName = Dir$()
Loop
For Each sName In oKillElements
If GetAttr(sName) And vbDirectory Then
RmDir sName
Else
SetAttr sName, vbNormal
Kill sName
End If
Next sName
VBA.FileSystem.RmDir vsFolder
End If
End Sub