Contenido
`MkDir` en VBA (Visual Basic for Applications) se usa para crear un nuevo directorio o carpeta en el sistema de archivos. Es útil cuando necesitas organizar archivos o directorios dentro de tus macros.
Aquí tienes cómo usar la instrucción `MkDir` en VBA:
Sub CrearCarpeta()
Dim rutaCarpeta As String
' Define la ruta donde quieras crear la nueva carpeta
' Asegúrate de que la unidad y la ruta de la carpeta existan.
' Si no, MkDir arrojará un error en tiempo de ejecución.
rutaCarpeta = "C:MiDirectorioNuevo"
' Verifica si la carpeta ya existe antes de intentar crearla
If Dir(rutaCarpeta, vbDirectory) = "" Then
' Crea la carpeta
MkDir rutaCarpeta
MsgBox "La carpeta fue creada exitosamente: " & rutaCarpeta
Else
MsgBox "La carpeta ya existe: " & rutaCarpeta
End If
End Sub
En este ejemplo, el código verifica primero si la carpeta ya existe usando la función `Dir`. Si no existe, entonces crea la carpeta con `MkDir`. Si intentas crear una carpeta que ya existe, VBA arrojará un error de «Ruta de acceso duplicada».
Aquí unos aspectos a tener en cuenta cuando usas `MkDir`:
- La función `Dir` se utiliza para verificar la existencia de la carpeta antes de intentar crearla, lo que es una buena práctica para evitar errores.
- Si intentas crear una subcarpeta en una carpeta que no existe, `MkDir` arrojará un error. Por ejemplo, si intentas crear «C:CarpetaNoExistenteSubcarpeta» y «C:CarpetaNoExistente» no existe, obtendrás un error. Necesitarías usar `MkDir` de manera secuencial para crear primero la carpeta padre y luego la subcarpeta.
- Si se proporciona una ruta de carpeta que incluye caracteres inválidos o reservados, `MkDir` generará un error.
- Si no tienes permiso para crear una carpeta en la ubicación especificada, `MkDir` lanzará un error de permisos.
Recuerda que los errores en tiempo de ejecución pueden ser capturados y manejados usando bloques `On Error` para proporcionar una mejor experiencia de usuario. Por ejemplo, podrías utilizar `On Error Resume Next` antes de la llamada a `MkDir` y luego verificar el número de error usando `Err.Number` para determinar si la operación fue exitosa.
Finalmente, no olvides que los ejemplos aquí asumen que estás trabajando en un entorno Windows, ya que VBA se ejecuta comúnmente en aplicaciones de Microsoft Windows como Excel, Access y Word.