¿Cómo usar la función Dir en VBA?

La función Dir en VBA se utiliza para obtener el nombre de un archivo o carpeta que coincida con un patrón especificado. Puede ser útil para recorrer todos los archivos de un directorio, buscar si existe un archivo o listar archivos que coincidan con ciertos criterios.

Sintaxis básica

VB

Dim nombreArchivo As String
nombreArchivo = Dir(PathName, Attributes)

  • PathName: Específica la ruta y el tipo de archivo que estás buscando, incluye comodines si es necesario (por ejemplo, *.txt para todos los archivos de texto).
  • Attributes: Un atributo opcional que especifica tipos de archivos o carpetas diferentes, como archivos de sólo lectura, ocultos, etc. Si no se especifica, se buscan archivos normales por defecto.

Ejemplo para listar todos los archivos de un directorio

VB

Sub ListarArchivos()
    Dim ruta As String
    Dim nombreArchivo As String
    
    ruta = "C:\MiCarpeta\"  ' Cambia esto por la ruta de la carpeta que deseas explorar.
    nombreArchivo = Dir(ruta & "*", vbNormal) ' Lista solo archivos normales, ignora ocultos y de sistema.

    While nombreArchivo <> ""
        Debug.Print nombreArchivo  ' Muestra el nombre del archivo en la ventana Inmediato.
        nombreArchivo = Dir()  ' Llama a Dir nuevamente sin argumentos para obtener el siguiente archivo.
    Wend
End Sub

Este script imprimirá los nombres de todos los archivos que se encuentran en C:\MiCarpeta\.

Ejemplo para comprobar si existe un archivo específico

VB

Sub ComprobarExistenciaArchivo()
    Dim nombreArchivo As String
    
    nombreArchivo = "C:\MiCarpeta\archivo.txt" ' Cambia esto por la ruta y el nombre del archivo a comprobar.
    
    If Dir(nombreArchivo) <> "" Then
        MsgBox "El archivo existe."
    Else
        MsgBox "El archivo no existe."
    End If
End Sub

Buscar archivos con ciertas extensiones

VB

Sub BuscarExtensiones()
    Dim nombreArchivo As String
    Dim ruta As String
    
    ruta = "C:\MiCarpeta\" ' Cambia esto por la ruta de la carpeta que deseas explorar.
    nombreArchivo = Dir(ruta & "*.txt") ' Busca todos los archivos .txt en la carpeta.

    While nombreArchivo <> ""
        Debug.Print nombreArchivo
        nombreArchivo = Dir()  ' Continúa buscando el siguiente archivo .txt.
    Wend
End Sub

Estos son solo algunos ejemplos del uso de la función Dir en VBA, pero es bastante versátil y se puede adaptar a muchos otros casos según tus necesidades. Asegúrate de utilizar los comodines (* para cualquier secuencia de caracteres o ? para un único carácter) adecuadamente al especificar el PathName.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!

Deja un comentario