VBA Cuadro de Diálogo Abrir Archivo
VBA permite elegir un archivo para abrirlo mediante el método Application.GetOpenFilename. En este tutorial, usted aprenderá cómo abrir un cuadro de diálogo de archivo y establecer los parámetros. Si quieres aprender a abrir y cerrar un archivo, puedes hacer clic en este enlace: VBA Abrir/Cerrar Archivo
Abrir un cuadro de diálogo de archivo en VBA
Si quieres abrir un archivo en VBA, primero necesitas abrir un cuadro de diálogo de archivo para elegir un archivo. Aquí está el código:
Sub abrirArchivo()
Dim archivo As String
archivo = Application.GetOpenFilename(FileFilter:="Excel files (*.xlsx*), *.xlsx*", _
Title:="Seleccione un archivo para abrir", MultiSelect:=True)
End Sub
Como puede ver, el método tiene varios parámetros. FileFilter le permite filtrar los tipos de archivo que necesita, en nuestro caso los archivos .xlsx. En el parámetro Title, puede establecer un título del cuadro de diálogo. Si quiere permitir la apertura de múltiples archivos, necesita establecer MultipleSelect a True. Si no establece este parámetro, sólo se podrá seleccionar un archivo.
Imagen 1. Diálogo para abrir un archivo
Como puede ver en la Imagen 1, aparece el cuadro de diálogo con el título Elegir un archivo de Excel. Sólo se filtran los archivos de Excel y podemos seleccionar varios archivos.
Abrir un cuadro de diálogo de archivo en una carpeta específica
Si queremos abrir un cuadro de diálogo en una carpeta específica, tenemos que utilizar el método .FileDialog con el parámetro msoFileDialogFilePicker. En el ejemplo, abriremos un cuadro de diálogo en la carpeta C:\VBA Folder. Aquí está el código:
Sub abrirArchivo2()
Dim fd As Office.FileDialog
Dim archivo As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Clear
.Filters.Add "Excel Files", "*.xlsx?", 1
.Title = "Seleccione un archivo excel"
.AllowMultiSelect = False
.InitialFileName = "C:\Users\denni\OneDrive\Documentos"
If .Show = True Then
archivo = .SelectedItems(1)
End If
End With
End Sub
Primero hay que declarar la variable fd de tipo Office. FileDialog y la variable string para la toma del archivo:
Dim fd As Office.FileDialog
Dim archivo As String
Después de esto, usted necesita para establecer fd a Application. FileDialog(msoFileDialogFilePicker):
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Ahora, dentro de With fd End With, podemos establecer múltiples parámetros:
.Filters.Clear
.Filters.Add "Excel Files", "*.xlsx?", 1
.Title = "Seleccione un archivo excel"
.AllowMultiSelect = False
Aquí borramos los filtros de archivo (.Filters.Clear) y lo establecemos en .xlsx (.Filters.Add «Excel Files», «*.xlsx?», 1). Además, podemos establecer el título del cuadro de diálogo: . Title = «Choose an Excel file». Podemos limitar al usuario a seleccionar sólo un archivo mediante:
.AllowMultiSelect = False
Para abrir un cuadro de diálogo en la carpeta que queramos, tenemos que poner esta línea de código
.InitialFileName = "C:\Users\denni\OneDrive\Documentos"
Al final simplemente abriremos el cuadro de diálogo con todos los parámetros previamente establecidos:
If .Show = True Then
archivo = .SelectedItems(1)
End If
Cuando ejecutamos este código, aparece el cuadro de diálogo de apertura de archivos en la carpeta «C:\Users\denni\OneDrive\Documentos»
Imagen 2. Abrir un diálogo de archivo en una carpeta específica
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!