Función VBA DIR

Función Excel VBA DIR

La función VBA DIR también se conoce como función de directorio, esta es una función incorporada en VBA que se usa para darnos el nombre de archivo de un archivo o carpeta dado, pero necesitamos proporcionar la ruta del archivo, la salida devuelta por este La función es una cadena ya que devuelve el nombre del archivo, hay dos argumentos para esta función que son el nombre de la ruta y los atributos.

La función DIR devuelve el primer nombre de archivo en la ruta de la carpeta especificada. Por ejemplo, en su unidad D, si tiene un nombre de carpeta llamado 2019 y en esa carpeta, si sobresale el archivo llamado "Ventas de 2019", entonces puede acceder a este archivo usando la función DIR.

La función “VBA DIR” es muy útil para obtener el nombre del archivo usando su carpeta de ruta.

Sintaxis

Esta función tiene dos argumentos opcionales.

  • [Nombre de ruta]: como el nombre indica cuál es la ruta para acceder al archivo. Este podría ser el nombre del archivo, el nombre de la carpeta o el directorio también. Si no se asigna ninguna ruta, devolveré un valor de cadena vacío, es decir, ""
  • [Atributos]: Este también es un argumento opcional y es posible que no lo use muy a menudo en la codificación. Puede especificar el atributo del archivo en el [Nombre de ruta] y la función DIR busca solo esos archivos.

Por ejemplo: si desea acceder solo a archivos ocultos, si desea acceder solo a archivos de solo lectura, etc., podemos especificar en este argumento. A continuación se muestran los atributos que podemos utilizar.

Ejemplos para usar la función VBA DIR

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

Ejemplo n. ° 1: acceder al nombre de archivo mediante la función DIR

Te explicaré el ejemplo simple de acceder al nombre del archivo usando la función DIR. Siga los pasos siguientes.

Paso 1: crea un nombre de macro.

Paso 2: Defina la variable como Cadena .

Código:

 Sub Dir_Example1 () Dim MyFile As String End Sub 

Paso 3: Ahora para esta variable, asignaremos valor usando la función DIR .

Código:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir (End Sub 

Paso 4: Ahora copie y pegue la ruta de la carpeta de archivos en su computadora. Mencione el nombre de la ruta entre comillas dobles.

Código:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template End Sub 

Paso 5: He mencionado mi ruta a la carpeta, ahora también debemos mencionar el nombre del archivo y su extensión. Para hacer esto, lo primero que debemos hacer es poner una barra invertida después de la ruta (\)

Después de ingresar la barra invertida, debemos ingresar el nombre completo del archivo .

Código:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") End Sub 

Paso 6: muestra el valor de la variable en el cuadro de mensaje.

Código:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub 

Ahora ejecute el código y vea cuál es el resultado del cuadro de mensaje.

Entonces, la función DIR devolvió el nombre del archivo con la extensión del archivo.

Ejemplo # 2 - Abrir archivo usando la función DIR

Ahora, ¿cómo abrimos el archivo? Esta función puede devolver el nombre del archivo, pero abrir ese archivo es un proceso un poco diferente. Siga los pasos a continuación para abrir el archivo.

Paso 1: crea dos variables como String .

Código:

 Sub Dir_Example2 () Dim FolderName como cadena Dim FileName como cadena End Sub 

Paso 2: Ahora, para la variable FolderName , asigne la ruta de la carpeta.

Código:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" End Sub 

Paso 3: Ahora, para la variable FileName, necesitamos obtener el nombre del archivo usando la función DIR .

Código:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (End Sub 

Paso 4: Ahora, para el nombre de la ruta, ya hemos asignado una ruta a la variable FolderPath, por lo que podemos proporcionar directamente la variable aquí.

Código:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName End Sub 

Paso 5: Ahora necesitamos proporcionar el nombre del archivo. Usando el símbolo comercial (&) asigne el nombre del archivo.

Código:

 Sub Dir_Example2 () Dim FolderName como cadena Dim FileName como cadena FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") End Sub 

Paso 6: Ahora use el método WORKBOOKS.OPEN .

Código:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open End Sub 

Paso 7: El nombre del archivo es una combinación de FolderPath y FileName . Así que combina estos dos.

Código:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open FolderName & FileName End Sub 

Ahora ejecute este código y abrirá el nombre de archivo mencionado.

Ejemplo n. ° 3: abrir varios libros de trabajo con la función DIR

De hecho, podemos acceder a todos los libros de trabajo de la carpeta. Para acceder a todos y cada uno de los archivos, no podemos mencionar todos los nombres de los archivos directamente, pero podemos usar el carácter comodín para referirnos al archivo.

El asterisco (*) es uno de esos caracteres comodín. Identifica cualquier número de caracteres. Por ejemplo, si desea acceder a todos los archivos de macro de la carpeta, puede utilizar el asterisco como comodín, es decir, "* .xlsm *"

Aquí * coincidirá con cualquier nombre de archivo con la extensión del archivo es igual a "xlsm".

Código:

 Sub Dir_Example3 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "* .xlsm *") Do While FileName "" Workbooks.Open FolderName & FileName FileName = Dir ( ) Loop End Sub 

Ahora, el código anterior abrirá todos los archivos en la ruta de la carpeta.

FileName = Dir () la razón por la que he usado esta línea porque, para acceder al siguiente archivo en la carpeta, tenemos que hacer que el nombre del archivo existente sea nulo. En el momento en que hagamos nulo el nombre del archivo existente, cuando el bucle se ejecute por segunda vez, tomará el siguiente archivo de la carpeta.

Ejemplo n. ° 4: obtener todos los nombres de archivo en la carpeta

Suponga que si desea la lista de todos los nombres de archivo en la carpeta, también podemos hacerlo mediante el uso de atributos.

Código:

 Sub Dir_Example4 () Dim FileName As String FileName = Dir ("E: \ VBA Template \", vbDirectory) Do While FileName "" Debug.Print FileName FileName = Dir () Loop End Sub 

Haga visible la ventana inmediata presionando Ctrl + G.

Ahora ejecute el código, obtendremos todos los nombres de los archivos en la ventana inmediata.