VBA FileDialog - ¿Cómo abrir el cuadro de diálogo FilesDialog usando el código VBA?

Tabla de contenido

Excel VBA FileDialog

En VBA fieldialog es una propiedad que se usa para representar diferentes instancias, en filedialog hay cuatro tipos diferentes de constantes que se conocen como msofiledialogfilepicker que se usa para seleccionar un archivo de una ruta dada, el segundo es msofiledialogfolderpicker cuyo nombre sugiere que se usa para elegir una carpeta y la tercera es msofiledialog open para abrir un archivo y la última es msofiledialogsaveas que se usa para guardar un archivo como un archivo nuevo.

Hay ciertas circunstancias en las que queremos los datos de cualquier otro archivo o cualquier otra hoja de trabajo, y como VBA se usa para automatizar nuestro trabajo, podemos abrir otros archivos diferentes usando VBA, y se hace usando el cuadro de diálogo Archivo, la parte interesante de usar este método es que no necesitamos proporcionar la ruta al código, sino que le pedimos al usuario que explore el archivo.

Como parte del proyecto VBA, es posible que necesitemos abrir otros libros de trabajo y ejecutar algún tipo de tarea con ellos. En uno de los artículos anteriores, "VBA Workbook.Open", mostramos cómo abrir archivos con una ruta y un archivo específicos. Allí, necesitábamos proporcionar la ruta de la carpeta y el nombre del archivo con su extensión. Pero, ¿qué pasa si cada vez que un usuario tiene que seleccionar los diferentes archivos de las diferentes carpetas? Aquí es donde la opción "FileDialog" entra en escena.

¿Cómo funciona la opción VBA FileDialog?

"Si no conoce la ruta exacta, FileDialog encontrará y seleccionará el archivo". En lugar de mencionar la dirección de la ruta y el nombre del archivo, podemos presentar una ventana de diálogo de apertura de archivo por separado para seleccionar el archivo de cualquier carpeta de la computadora.

"FileDialog" es un objeto en VBA. Para usar esta opción primero, necesitamos definir la variable como FileDialog.

Una vez que la variable se declara como "FileDialog", es una variable de objeto. Para comenzar a usar esto, necesitamos configurar el objeto usando Application.FileDialog.

Como podemos ver en la imagen de arriba, FileDialog tiene cuatro opciones.

  • msoFileDialogFilePicker: esta opción abre la ventana del selector de archivos frente al usuario para seleccionar el archivo deseado según su deseo.
  • msoFileDialogFolderPicker: esta opción abre el cuadro de diálogo o la ventana frente al usuario para seleccionar la carpeta.
  • msoFileDialogOpen: Esto permitirá al usuario abrir el archivo seleccionado de la carpeta.
  • msoFileDialogSaveAs: Esto permitirá al usuario guardar el archivo como una copia diferente.

A partir de ahora, he seleccionado la opción de msoFileDialogFilePicker.

Ahora tenemos que diseñar el cuadro de diálogo que aparece frente a nosotros.

Usando Con Instrucción, podemos diseñar el cuadro de diálogo.

Dentro del con la declaración, ponga un punto para ver la lista IntelliSense de las propiedades y métodos de la opción FileDialog.

Para ver solo los archivos de Excel cuando se abre el cuadro de diálogo del archivo, primero debemos eliminar cualquiera de los filtros aplicados.

Ahora necesitamos aplicar un nuevo filtro como "Archivos de Excel" con la extensión comodín de los archivos de Excel.

Ahora cambiemos el título del cuadro de diálogo del archivo.

Podemos permitir que el usuario seleccione solo un archivo a la vez, o también podemos permitirle que seleccione varios archivos. Para ello, debemos utilizar "Permitir selección múltiple".

Tenemos dos opciones aquí. Si se selecciona VERDADERO, permitirá al usuario seleccionar varios archivos. Si es así, el usuario FALSO puede seleccionar solo un archivo a la vez.

Otra cosa que podemos diseñar con FileDialog es que podemos insistir en cuál debería ser la carpeta predeterminada cuando aparece el cuadro de diálogo del archivo. Para este uso, nombre de archivo inicial.

Para esto, debemos mencionar la carpeta predeterminada para abrir la ruta de dirección.

Ahora, finalmente, debemos aplicar el método "Mostrar" para ver el cuadro de diálogo del archivo.

Código:

Sub DoEvents_Example1() Dim Myfile As FileDialog Set Myfile = Application.FileDialog(msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "*.xlsx?", 1 .Title = "Choose Your Excel File!!!" .AllowMultiSelect = False .InitialFileName = "D:Excel Files" .Show End With End Sub

Now run the VBA code to see the result.

As we can see in the above image file dialog box has opened the mentioned folder by default.

Now we can select any subfolder and select the excel files.

Look at the above image because we have applied the filter parameter as “Excel Files” only.

This will just select the file from the mentioned folder. To store the full path, we need to declare one more variable as a string.

Now inside the with the statement, select “SelectedItems.” Assign the selected items folder path to the newly defined variable.

Now finally show the selected folder path in the VBA message box.

Now I will run the program to see the dialogue box.

Now I have selected the File Name as “1. Charts.xlsx” in the subfolder “Charts.” If I click on OK, we can see the full folder path in the message box.

So, like this, we can use the FileDialog option to select the files from the folder in Excel. Use the below code to select the files.

Code:

Sub DoEvents_Example1 () Atenuar Myfile como FileDialog Establecer Myfile = Application.FileDialog (msoFileDialogFilePicker) Atenuar FileAddress como cadena con Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Elija su ¡¡¡Archivo Excel!!!" .AllowMultiSelect = False .InitialFileName = "D: Archivos de Excel" .Mostrar FileAddress = .SelectedItems (1) Terminar con MsgBox FileAddress End Sub

Articulos interesantes...