Cómo utilizar la función DIR de VBA en Excel (7 ejemplos prácticos)

  • Compartir Este
Hugh West

En DIR función en VBA principalmente te muestra el directorio o los archivos de una carpeta dada. También puede devolver el primer archivo con esta función. Esta función tiene muchos usos para obtener archivos y carpetas específicos. Todo lo que necesitas es simplemente insertar la ruta del archivo en la ruta de la función VBA Puede que le resulte más difícil utilizar el código VBA DIR No te preocupes, en este artículo, vamos a mostrarte algunos ejemplos para una mejor visualización del uso de la función VBA DIR Espero que seas capaz de utilizar la función después de leer el artículo. Así que, vamos a empezar.

Descargar el cuaderno de prácticas

Descárgate el siguiente cuaderno de prácticas. Te ayudará a comprender mejor la asignatura.

Función DIR.xlsm

Introducción a la función DIR

Resumen:

En VBA DIR devuelve el nombre de un archivo o directorio de una ruta de carpeta dada. Convencionalmente, devuelve el primer archivo.

Sintaxis:

Dir [ (nombre de ruta, [ atributos ] ) ]

Argumentos Explicación:

Argumento Obligatorio/Opcional Explicación
PathName Opcional Ruta para acceder y especifica el archivo
Atributos Opcional Constante o expresión numérica especifica los atributos de los archivos coincidentes

Hay algunos atributos predefinidos, que son-

Nombre del atributo Descripción
vbNormal Ficheros sin atributos específicos
vbReadOnly Archivos de sólo lectura sin atributos
vbHidden Archivos ocultos sin atributos
vbSistema Archivos de sistema sin atributos
vbVolumen Etiqueta de volumen
vbDirectory Directorios o carpetas sin atributos
vbAlias El nombre de archivo especificado es un alias

7 Ejemplos de uso de la función DIR de VBA en Excel

Por la descripción, es posible que haya entendido que el VBA DIR proporciona el nombre del archivo a partir de la ruta proporcionada. Vamos a entenderlo con un ejemplo. Aquí hemos creado un directorio Carpeta_excelente para mostrarle varios ejemplos. En esta carpeta hay diferentes carpetas y archivos pequeños.

1. Buscar el nombre del archivo en la ruta

En nuestra carpeta, podemos encontrar un archivo específico declarando la ruta del nombre del archivo.

Después de copiar la ruta del archivo, debe ejecutar el código.

Para ello, diríjase al Desarrollador tab>> pick Visual Basic A continuación, vaya a Inserte tab>> seleccionar Módulo. En el General escribimos el código.

Como nuestro programa es encontrar el Archivo de la ruta, estableceremos la ruta completa (desde la raíz hasta el archivo) y nuestro código será

 Sub FileNames() Dim FN As String FN = Dir("E:\Exceldemy\Sales_of_January.xlsx") MsgBox FN End Sub 

Aquí, en nuestro código, hemos establecido la ruta como E:Ventas_de_enero.xlsx

Desglose del código:

  • Inicialmente, declaramos una variable de cadena llamada FN Y la salida del Dir se ha guardado en esta variable.
  • A continuación, el Dir busca el nombre del archivo y lo devuelve a partir de la ruta proporcionada.
  • Entonces el MsgBox establece la salida a través del buzón de mensajes. El MsgBox devuelve la salida mediante un cuadro de mensaje.
  • A continuación, ejecute el código con la función F5 llave.

Por último, hemos encontrado el archivo denominado Ventas_de_enero.xlsx .

2. Comprobar la existencia de un directorio

Podemos comprobar la existencia de un directorio utilizando la función Dir Escribamos el código para comprobar si la función Exceldemy Escriba el siguiente código en el cuadro general y ejecútelo con el comando F5 llave.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " exists" Else MsgBox "The file doesn't exist" End If End Sub 

Desglose del código:

  • Hemos declarado dos variables; PN contiene la ruta completa de nuestro directorio de comprobación.
  • Aquí dentro del Dir hemos establecido dos valores, el nombre de la ruta y el valor del atributo como vbDirectory Este valor de atributo ayudará a detectar el directorio. Y la salida de esta función se almacena en el archivo Archivo variable.
  • A continuación, comprobamos si la variable está vacía o no. Si encontramos que la variable no es, a continuación, declarar la existencia del directorio a través de un cuadro de mensaje, de lo contrario, el retorno no existe.

Aquí, el Exceldemy existe, por lo que encontraremos " Exceldemy existe ", donde Exceldemy es el nombre de la carpeta.

3. Crear una carpeta inexistente

Puede crear una carpeta que no exista en su PC. Para ello, tiene que crear un nombre de ruta que no exista en sus carpetas. Imaginemos que vamos a crear un directorio llamado Exceldemy_1 Utilizaremos el MkDir para crear el directorio, pero antes tenemos que escribir lo siguiente VBA código.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy_1" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " La carpeta de archivos existe" Else MkDir PN MsgBox "Se ha creado una carpeta de archivos con el nombre" & File End If End Sub 

Aquí hemos escrito un comando para crear el directorio utilizando el nombre de la ruta del archivo Si no de nuestro código. Ejecutar el código con el F5 llave.

El directorio ha sido creado. Echemos un vistazo a la carpeta del directorio. La carpeta Exceldemy_1 ya está visible en su ordenador.

Lecturas similares:

  • Cómo llamar a un Sub en VBA en Excel (4 Ejemplos)
  • Devolver un Valor en una Función VBA (Valores de Matriz y No Matriz)
  • Utilizar la Función UCASE de VBA en Excel (4 Ejemplos)
  • Cómo utilizar la función TRIM en VBA en Excel (Definición + Código VBA)

4. Buscar el primer archivo de un directorio

La principal tarea del Dir Todo lo que necesita proporcionar dentro de la función es la ruta (hasta el directorio contenedor), y devolverá el primer archivo de ese directorio.

Busquemos el primer archivo de nuestro Exceldemy Nuestro código será

 Sub FirstFileinFolder() Dim FN As String Dim PN As String PN = "E:\Exceldemy\" FN = Dir(PN) MsgBox "First File: " & FN End Sub 

Puedes ver el código básico; hemos pasado el nombre de la ruta a la función Dir función. Ahora Ejecutar el código con el F5 encontrará el primer archivo de este directorio.

5. Buscar todos los archivos de un directorio

En la sección anterior, hemos visto cómo encontrar el primer nombre de fichero de un directorio. La situación puede presentarse cuando se necesita encontrar todos los ficheros de un directorio específico. Para encontrar todos los ficheros de un directorio específico, hay que escribir lo siguiente VBA código.

 Sub AllFile() Dim FN As String Dim FL As String FN = Dir("E:\Exceldemy\") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("Lista de Archivos:" & FL) End Sub 

Aquí hay dos variables para almacenar los nombres de archivo como una sola ( FN ), y como lista ( FL El Hacer mientras itera hasta que no queda ningún archivo en el directorio, utilizando este bucle, introducimos cada nombre de archivo en el directorio FL variable.

Ejecute el código, y encontrará todos los archivos en el directorio, como en la imagen de abajo.

6. Buscar todos los archivos y carpetas de un directorio

Hemos mencionado en la sección anterior dónde encontrar todos los archivos. También podemos encontrar todas las subcarpetas de una carpeta. Para ello, escriba lo siguiente VBA que adjuntamos a continuación.

 Sub AllFileFolders() Dim AN As String Dim Lst As String AN = Dir("E:\Exceldemy_Folder\", vbDirectory) Do While AN "" Lst = Lst & vbNewLine & AN AN = Dir() Loop MsgBox ("Archivo Lst:" & Lst) End Sub 

El cambio en nuestro código es simplemente el uso de parámetros de atributo. Hemos utilizado el atributo vbDirectory en ese campo. Ejecutar el código, y encontrará todos los archivos y subcarpetas de Carpeta_excelente .

7. Buscar todos los archivos de un tipo específico

Utilización de la VBA Dir podemos encontrar cualquier tipo de archivo. Veámoslo con un ejemplo.

Vamos a encontrar .csv de nuestro directorio. Nuestro código será como el siguiente-

 Sub SpecialTypeFiles() Dim FL As String Dim FN As String FN = Dir("E:\Exceldemy_Folder\Exceldemy\*.csv") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("Lista de Archivos .csv:" & FL) End Sub 

Esperamos que haya entendido el código, que utiliza un mecanismo similar para encontrar archivos. En la ruta, utilizamos un comodín ( * ). Este asterisco (*) denota que puede aparecer cualquier carácter hasta cualquier número. El comodín se ha utilizado de tal forma que el nombre del archivo puede ser cualquier cosa pero debe ser un .csv archivo.

Cuando ejecute el código, devolverá el valor .csv archivos de nuestro Exceldemy directorio.

Sección práctica

En la parte derecha de cada hoja hemos incluido una sección de práctica para que practiques por tu cuenta.

Conclusión

Eso es todo sobre la sesión de hoy. Y estos son algunos ejemplos fáciles de la VBA Dir en Excel. Si tiene alguna duda o sugerencia, háganosla saber en la sección de comentarios. Para una mejor comprensión, descárguese la hoja de prácticas y visite nuestro sitio web, Exceldemy Gracias por su paciencia al leer este artículo.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.