'--------------------------------------------------------
'  関数名 : KillDir
'  用途  : ディレクトリを削除する
'  引数  : DirName - 削除するディレクトリ
'  戻り値 : 成功したら True
'  備考  : 再帰処理する
'--------------------------------------------------------
Public Function KillDir(ByVal DirName As String) As Boolean

  Dim strDir As String
 
  On Error GoTo err
 
  ' フォルダ中のファイルを削除
  strDir = Dir(DirName & "*", vbNormal _
               Or vbReadOnly _
               Or vbHidden _
               Or vbSystem)
  Do While strDir <> ""
    strDir = DirName & strDir
    Kill strDir
    Debug.Print "Kill - " & strDir
    strDir = Dir
  Loop
   
  ' フォルダの削除(再帰処理)
  strDir = Dir(DirName, vbDirectory)
  Do
    If strDir = "" Then Exit Do
    If ((strDir <> ".") And (strDir <> "..")) Then
   
      strDir = DirName & strDir & "\"
      If (GetAttr(strDir) And vbDirectory) = vbDirectory Then
       
        ' 再帰処理
        If KillDir(strDir) = False Then GoTo err
        strDir = Dir(DirName, vbDirectory)
     
      End If
    Else
      strDir = Dir
    End If
  Loop
 
  ' 最後に自分フォルダを削除
  RmDir DirName
  Debug.Print "RmDir - " & DirName
 
  KillDir = True
 
err:

End Function