VBA Cuadro de Diálogo Abrir Archivo

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on febrero 26, 2022

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.

Cuadro dialogo abrir archivos

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»

Cuadro dialogo abrir archivos2

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! vba save as


Learn More!
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples