Las siguientes funciones nunca fallan y sirven una para saber si existe un archivo, y otra para saber si existe un directorio.
Saludos.
Código [Seleccionar]
Function IsFile(ByVal Filename As String) As Boolean
On Error Resume Next
IsFile = (GetAttr(Filename) And Not vbDirectory)
End Function
Function IsDir(ByVal sDir As String) As Boolean
On Error Resume Next
If sDir = vbNullString Then Exit Function
IsDir = ((GetAttr(sDir) And vbDirectory) = vbDirectory)
End Function
Saludos.