Función Excel VBA DIR

Dir es una de las funciones disponibles en VBA. La función Dir es para referir directorios en código VBA.
La función que devuelve el nombre del archivo o directorio que coincide con el atributo o cadena dados, de lo contrario, devuelve el primer archivo o carpeta. En palabras simples, si tenemos una carpeta ABC y dentro de ABC hay un archivo XYZ, entonces podemos acceder al archivo XYZ usando la función DIR en VBA.

Fórmula para la función DIR en Excel VBA

La función DIR tiene la siguiente sintaxis en Excel VBA:

Tiene dos partes Nombre de ruta y Atributos.

  • Nombre de ruta: por el nombre, todos pueden entender que es la ruta del archivo donde realmente existe el archivo. Si no ingresamos ninguna ruta en pathname, devolverá una cadena vacía.
  • Atributo: es un argumento opcional, no usamos mucho de esto. Podemos usar esto cuando queremos abrir el archivo con los siguientes atributos y luego VBA busca esos archivos.
vbArchiveEspecifica archivos o archivos de respaldo.
vbNormalNormal (predeterminado) o sin atributos.
vbReadOnlyarchivos de solo lectura
vbSystemArchivos del sistema
vbVolumeetiqueta de volumen; Si usa cualquier otro atributo con este, la etiqueta de volumen se ignora.
vbDirectoryDirectorios o carpetas.
vbHiddenarchivos ocultos
vbAliasEl nombre del archivo es un alias

¿Cómo usar la función DIR en Excel VBA?

A continuación se muestran los diferentes ejemplos para usar la función DIR en Excel usando el código VBA.

Puede descargar esta plantilla de Excel de VBA DIR aquí - Plantilla de Excel de VBA DIR

Función VBA DIR - Ejemplo # 1

En este ejemplo, veremos cómo acceder a un nombre de archivo usando la función DIR en VBA.

Paso 1: vaya a la pestaña Desarrolladores y haga clic en Visual Basic

Paso 2: abra un módulo desde la opción de menú Insertar como se muestra a continuación.

Paso 3: para iniciar cualquier macro, primero debemos asignarle un nombre a la macro con la palabra clave 'sub' como se muestra a continuación.

Código:

 Sub myexample1 () End Sub 

Recuerde que estamos escribiendo nuestro código en "Módulo1" cuando ingresamos "submyexample ()", automáticamente aparecerá "End sub".

Paso 4: Defina una cadena usando la palabra clave " Dim " que se refiere a la dimensión. En la siguiente captura de pantalla "mystring" es el nombre de la cadena.

Código:

 Sub myexample1 () Dim mystring As String End Sub 

Recuerde que siempre que defina los nombres de tipos de datos o nombres de programas, no debe haber espacio entre dos palabras. "Mystring" no hay espacio entre "my" y "string".

El archivo está disponible en la carpeta de muestra que está disponible en el Escritorio y el nombre del archivo es "KT tracker mine".

C: \ Users \ cba_13 \ Desktop \ Sample \

Paso 5: Ahora necesitamos almacenar el nombre del archivo en "mystring" usando la función Dir.

Código:

 Sub myexample1 () Dim mystring As String mystring = Dir ("C: \ Users \ cba_13 \ Desktop \ Sample \") End Sub 

En la captura de pantalla anterior en la función Dir, he dado la ruta del archivo excluyendo el nombre del archivo. Como solo hay un archivo, devolverá el nombre del archivo.

Paso 6: Ahora con el paso anterior, el nombre del archivo almacenado en la cadena "mystring". Para mostrar el nombre del archivo, debemos mostrarlo a través de un cuadro de mensaje. Crea un cuadro de mensaje.

Código:

 Sub myexample1 () Dim mystring As String mystring = Dir ("C: \ Users \ cba_13 \ Desktop \ Sample \") MsgBox (mystring) End Sub 

Dimos la instrucción de mostrar los datos en "mystring" a través del cuadro de mensaje, ya que "mystring" tiene nombre de archivo, mostrará el nombre del archivo a través del cuadro de mensaje.

Paso 7: Ahora ejecute el código haciendo clic en el botón Reproducir o presionando la tecla F5.

Función VBA DIR - Ejemplo # 2

En este ejemplo, veremos cómo abrir un archivo usando la función DIR en Excel VBA.

Paso 1: Abra la pantalla del código VBA y comience dando el nombre del programa como "ejemplo2" o el nombre que desee.

Código:

 Sub ejemplo2 () End Sub 

Paso 2: Defina dos cadenas con los nombres "Nombre de carpeta" y "Nombre de archivo".

Código:

 Sub ejemplo2 () Dim Nombre de carpeta como cadena Dim Nombre de archivo como cadena Fin Sub 

Paso 3: Ahora asigne la ruta de la carpeta al nombre de la carpeta.

Código:

 Sub ejemplo2 () Nombre de carpeta atenuado como cadena Nombre de archivo atenuado como cadena Nombre de carpeta = "C: \ Users \ cba_13 \ Desktop \ Sample \" End Sub 

Paso 4: Asigne el archivo al "nombre de archivo" usando la función Dir. Aquí utilizamos la variable "Nombre de carpeta" porque tiene la ruta de la carpeta. Con la ayuda de ampersand, agregamos el nombre del archivo a la ruta.

Código:

 Sub example2 () Dim Nombre de carpeta como cadena Dim Nombre de archivo como cadena Nombre de carpeta = "C: \ Users \ cba_13 \ Desktop \ Sample \" Nombre de archivo = Dir (Nombre de carpeta & "KT Tracker mine.xlsx") End Sub 

Ahora la función Dir devuelve el nombre del archivo y se almacenará en la variable "nombre de archivo".

Paso 5: en el ejemplo anterior, utilizamos el cuadro de mensaje para ver los resultados. Pero, en esto, queremos abrir el archivo, por lo que utilizaremos el comando "workbooks.open".

Código:

 Sub example2 () Dim Nombre de carpeta como cadena Dim Nombre de archivo como cadena Nombre de carpeta = "C: \ Users \ cba_13 \ Desktop \ Sample \" Nombre de archivo = Dir (Nombre de carpeta & "KT Tracker mine.xlsx") Cuadernos de trabajo. Nombre de carpeta abierta y Nombre de archivo Fin Sub 

Paso 6: Ejecute el código anterior, abrirá el archivo disponible en la carpeta "C: \ Users \ cba_13 \ Desktop \ Sample \" con el nombre de archivo "KT Tracker mine".

Función VBA DIR - Ejemplo # 3

Ahora veremos el programa para saber si hay una carpeta disponible o no. Tengo la carpeta "Datos" como se muestra a continuación.

Tenemos que verificar con la ayuda de la función Dir si la carpeta "Datos" está disponible en la ruta C: \ Users \ cba_13 \ Desktop \ Sample \.

Paso 1: Cree un nombre de programa y defina dos cadenas con los nombres FD y FD1.

Código:

 Sub ejemplo3 () Dim Fd como String Dim Fd1 como String End Sub 

Paso 2: Asigne la ruta de la carpeta a la variable "Fd".

Código:

 Sub ejemplo3 () Dim Fd como cadena Dim Fd1 como cadena Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" End Sub 

Paso 3: Ahora use la función Dir para devolver el nombre de la carpeta como se muestra a continuación.

Código:

 Sub ejemplo3 () Dim Fd como cadena Dim Fd1 como cadena Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) End Sub 

El resultado de la función Dir debería ser el nombre de la carpeta y se almacenará en la variable de cadena Fd1. Si la carpeta "Datos" no está disponible en la carpeta respectiva, no devolverá ninguna cadena.

Paso 4: Ahora debemos verificar si Fd1 tiene una carpeta de "Datos" o no. Use la condición IF para verificar si Fd1 tiene la cadena "Datos" o no. Si está disponible, imprima la declaración como "Existe".

Código:

 Subejemplo3 () Dim Fd como cadena Dim Fd1 como cadena Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) If Fd1 = "Datos" Entonces MsgBox ("Salidas") Fin Sub 

Paso 5: en caso de que Fd1 no coincida con la carpeta "Datos", se imprimirá la declaración "No existe" en otra condición.

Código:

 Subejemplo3 () Dim Fd como String Dim Fd1 como String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) If Fd1 = "Data" Then MsgBox ("Exits") Else MsgBox ("Not Exits") End Sub 

Paso 6: Finalice el ciclo "If" como se muestra en la siguiente captura de pantalla.

Código:

 Subejemplo3 () Dim Fd como String Dim Fd1 como String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) If Fd1 = "Data" Then MsgBox ("Exits") Else MsgBox ("No sale") Finalizar si End Sub 

Paso 7: Ejecute el código presionando la tecla F5 o haciendo clic en el botón Reproducir para verificar si la carpeta está disponible o no. Si la carpeta "Datos" está disponible en esa carpeta, devolverá el cuadro de mensaje con el mensaje "Existe" como se muestra a continuación.

Paso 8: simplemente cambie el nombre de la carpeta como Data1.

 Subejemplo3 () Dim Fd como String Dim Fd1 como String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data1" Fd1 = Dir (Fd, vbDirectory) If Fd1 = "Data" Then MsgBox ("Exits") Else MsgBox ("No sale") Finalizar si End Sub 

Paso 9: ejecuta el código nuevamente. Ahora el resultado es "No existe" como se muestra a continuación.

Cosas para recordar

  • Los argumentos en la función Dir son opcionales.
  • Si queremos archivos ocultos, carpetas o diferentes tipos de directorios, mencione su requisito en el segundo argumento.
  • Use "\" al final del nombre de la carpeta mientras ingresa la función Dir para ir a la carpeta.
  • Si queremos llamar o abrir varios archivos, podemos usar el carácter comodín "*" o "?".

Artículos recomendados

Esta es una guía de la función VBA DIR. Aquí discutimos cómo usar la función DIR en Excel VBA junto con algunos ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Libro de trabajo de VBA
  2. Función INDIRECTA en Excel
  3. VBA Count
  4. Función Excel XOR

Categoría: