Excel VBA FileDialog
Mientras trabaje, puede haber algunos escenarios en los que necesitemos abrir algunos otros libros de trabajo o cualquier otro archivo para importar datos o tomar una referencia. Hay un método para proporcionar una ruta del archivo en nuestro código en VBA que nos abrirá el archivo o la carpeta. Pero qué pasa si no recordamos la ruta, ¿cómo podemos abrir el archivo? Es posible que primero tengamos que buscar el camino y luego nuevamente proporcionar el camino. VBA viene con una solución que se conoce como FileDialog.
FileDialog es una propiedad en VBA que nos permite abrir un archivo o una carpeta desde una ruta. Al usar esta propiedad, un usuario no tiene que especificar la ruta de la carpeta, sino que el usuario puede seleccionar la ruta. No solo esto, FileDialog tiene un total de cuatro propiedades. También se conocen como constantes para esta propiedad. Son los siguientes:
- msoFileDialogFilePicker : Esto permite al usuario seleccionar un archivo.
- msoFileDialogFolderPicker : Esto permite al usuario seleccionar una carpeta.
- msoFileDialogOpen : esto permite al usuario abrir un archivo.
- msoFileDialogSaveAs: Esto permite al usuario guardar un archivo.
El método para usar este objeto en VBA es el siguiente.
Application.FIledialog (tipo de archivo archivado)
El tipo de FileDialog puede ser cualquiera de los cuatro tipos anteriores. Ahora usemos este objeto en ejemplos para aprender más sobre esta propiedad del objeto.
¿Cómo utilizar Excel VBA FileDialog?
A continuación se muestran los diferentes ejemplos para usar FileDialog en Excel usando el código VBA.
Puede descargar esta plantilla Excel de VBA FileDialog aquí - Plantilla VBA FileDialog ExcelExcel VBA FileDialog - Ejemplo # 1
Primero, ayudemos al usuario a seleccionar un archivo de un destino. En este ejemplo, el usuario seleccionará un archivo de la carpeta y mostraremos la ruta del archivo seleccionado.
Siga los pasos a continuación para usar Excel VBA FileDialog:
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: Inicie el subprocedimiento para comenzar a trabajar en el ejemplo.
Código:
Sub SelectFile () End Sub
Paso 4: Declare una variable como Filedialog como se muestra a continuación.
Código:
Sub SelectFile () Dim File As FileDialog End Sub
Paso 5: Ahora usemos este objeto del método Application.Filedialog de la siguiente manera.
Paso 6: Una vez que abrimos el paréntesis, podemos ver la opción para cuatro tipos de FileDialog como se muestra en la imagen a continuación.
Paso 7: Seleccione la opción de tipo Filedialog como msoFileDialogFilePicker
Código:
Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) End Sub
Paso 8: Ahora tenemos que hacer el cuadro de diálogo para este ejemplo, usemos With Statement de la siguiente manera.
Código:
Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) Con final de archivo con End Sub
Paso 9: Si hay algún filtro que necesitemos borrar, coloque una declaración de punto y escriba la declaración como se muestra a continuación.
Código:
Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear End With End Sub
Paso 10: ¿ Ahora queremos que el usuario seleccione múltiples archivos a la vez o un solo archivo? Para este ejemplo, sigamos con el archivo único a la vez, así que use .Allowmultiselect como falso.
Código:
Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False End With End Sub
Paso 11: Ahora para mostrar el cuadro de diálogo podemos escribir .show para mostrar el cuadro de diálogo de la siguiente manera.
Código:
Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False .Show End With End Sub
Paso 12: Una vez que ejecutamos el código anterior, podemos ver el cuadro de diálogo de la siguiente manera.
Paso 13: Dado que necesitamos mostrar la ruta de usuario seleccionada, declare otra variable como una cadena en el código.
Código:
Sub SelectFile () Dim File As FileDialog Dim Path As String Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False .Show End With End Sub
Paso 14: Utilizaremos una declaración de elementos seleccionados para encontrar la ruta para el archivo del usuario seleccionado y almacenarla en nuestra variable de la siguiente manera.
Código:
Sub SelectFile () Dim File As FileDialog Dim Path As String Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False .Show Path = .SelectedItems (1) End With End Sub
Paso 15: Después de la instrucción With, use la función msgbox para mostrar la dirección del archivo seleccionado.
Código:
Sub SelectFile () Dim File As FileDialog Dim Path As String Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False .Show Path = .SelectedItems (1) End With MsgBox Path End Sub Sub
Paso 16: Ejecutemos el código anterior y seleccione un archivo y presione ok para ver la ruta de la siguiente manera.
Excel VBA FileDialog - Ejemplo # 2
Ahora veamos otra opción del objeto VBA FileDialog que es msoFileDialogSaveAs. Esta propiedad se usa para guardar un archivo en cualquier ruta. Siga los pasos a continuación para usar Excel VBA FileDialog.
Paso 1: En el mismo módulo, escriba otro subprocedimiento para guardar el archivo de la siguiente manera.
Código:
Sub SaveFile () End Sub
Paso 2: Ahora declara dos variables, una como cadena y otra como un número entero.
Código:
Sub SaveFile () Dim elección como número entero, ruta como cadena Fin sub
Paso 3: Ahora hagamos que el cuadro de diálogo sea visible para el usuario usando la propiedad show de la siguiente manera.
Código:
Sub SaveFile () Dim Dim como entero, Path As String Choice = Application.FileDialog (msoFileDialogSaveAs) .Show End Sub
Paso 4: Ahora use la instrucción IF para determinar la elección del usuario de la siguiente manera.
Código:
Sub SaveFile () Dim Choice como entero, Path As String Choice = Application.FileDialog (msoFileDialogSaveAs) .Muestre si la opción 0 luego finaliza Sub
Paso 5: Ahora obtengamos la ruta seleccionada por el usuario en nuestra variable de ruta de la siguiente manera.
Código:
Sub SaveFile () Dim Choice como entero, Path As String Choice = Application.FileDialog (msoFileDialogSaveAs) .Mostrar If Choice 0 Then Path = Application.FileDialog (msoFileDialogSaveAs) .SelectedItems (1) End Sub
Paso 6: Ahora visualicemos el resultado usando la función msgbox y finalice el bucle IF.
Código:
Sub SaveFile () Dim Choice como entero, Path As String Choice = Application.FileDialog (msoFileDialogSaveAs) .Mostrar If Choice 0 Then Path = Application.FileDialog (msoFileDialogSaveAs) .SelectedItems (1) MsgBox Path End If End Sub
Paso 7: Ahora ejecute el código anterior y vea el resultado, se abre un cuadro de diálogo para guardar el archivo.
Paso 8: proporcione un nombre de archivo y presione Guardar, nos dará la ruta del archivo de la siguiente manera.
Cosas para recordar
- FileDialog es una propiedad de objeto de VBA.
- No necesitamos especificar la ruta al código usando este objeto.
- Usando el operador de punto podemos ver y usar las propiedades IntelliSense del objeto.
Artículos recomendados
Esta es una guía para VBA FileDialog. Aquí discutimos cómo usar el objeto FileDialog en Excel usando el código VBA junto con algunos ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:
- El archivo de verificación de VBA existe
- Resolver ecuaciones en Excel
- VBA Eliminar archivo
- ¿Cómo imprimir etiquetas desde Excel?
- Ejemplos para escribir código VBA