Cuando hay que armar un sistema que distribuye ciertos archivos en sus respectivas carpetas puede surgir el inconveniente de que lo primero que hace el sistema es crear la correspondiente carpeta. Pero, si la carpeta ya existe y el sistema trata de crearla, salta un mensaje de error. Es necesario comprobar la existencia de la carpeta antes de crearla.
Para comprobar la existencia de una carpeta puede usarse la función Dir. Por ejemplo:
Sub ExisteCarpeta()
ruta = “Enero”
x = Dir(ruta, vbDirectory)
If x = “” Then
MsgBox(“La carpeta “ & ruta & “ no existe”)
Else
MsgBox(“La carpeta “ & ruta & “ existe”)
End If
End Sub
La función Dir admite distintos usos. Con el segundo argumento igual a vbDirectory controla la existencia de la carpeta indicada como primer argumento. Si existe, la función recibe el nombre de esa carpeta. Si no, queda vacía. La macro anterior informa si la carpeta existe o no según el valor devuelto por la función.
Para crear la carpeta sólo cuando ésta no existe se deberían incluir en la macro la siguiente instrucción:
If Dir(ruta, vbDirectory) = “” Then MkDir(ruta)
En esta instrucción, si la carpeta ruta no existe, la función Dir devuelve un valor vacío y, por lo tanto, crea la carpeta. En caso contrario, la macro no hace nada especial y continúa con la ejecución.