ma non ritorna l'esistenza di una directory?


no, provala, vedrai che funziona.

Questo il codice per controllare l'esistenza di una directory:

Private Function DirExists(ByVal DirPath As String) As Boolean

On Error Resume Next
DirExists = (GetAttr(DirPath) And vbDirectory)

On Error goto 0

End Function