VBA – Caixa de Diálogo Abrir Arquivo

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on July 6, 2023

O VBA permite que você escolha um arquivo para abrir usando o método Application.GetOpenFilename. Neste tutorial, você aprenderá a abrir uma caixa de diálogo de arquivo e a definir parâmetros.

Se quiser saber como abrir e fechar um arquivo, clique neste link: Abrir/fechar arquivo em VBA

Abrir uma Caixa de Diálogo de Arquivo no VBA

Se quiser abrir um arquivo no VBA, primeiro você precisa abrir uma caixa de diálogo de arquivo para escolher um arquivo. Aqui está o código:

Dim strArquivo As String

strArquivo = Application.GetOpenFilename(FileFilter:="Excel files (*.xlsx*), *.xlsx*", Title:="Escolha um arquivo Excel para abrir", MultiSelect:=True)

Como você pode ver, o método tem vários parâmetros. FileFilter permite filtrar os tipos de arquivo de que você precisa, no nosso caso, arquivos .xlsx.

No parâmetro Title, você pode definir um título para a caixa de diálogo. Se quiser permitir a abertura de vários arquivos, será necessário definir MultipleSelect como True. Se você não definir esse parâmetro, somente um arquivo poderá ser selecionado.

escolha arquivo abrir excel

Imagem 1. Abrir uma caixa de diálogo de arquivo

 

Como você pode ver na Imagem 1, a caixa de diálogo aparece com o título Escolha um arquivo Excel para abrir. Somente os arquivos do Excel são filtrados e é possível selecionar vários arquivos.

Abrir uma Caixa de Diálogo de Arquivo em uma Pasta Específica

Se quiser abrir uma caixa de diálogo em uma pasta específica, é preciso usar o método .FileDialog com o parâmetro msoFileDialogFilePicker. No exemplo, abriremos uma caixa de diálogo na pasta C:\VBA Folder. Aqui está o código:

Dim fd As Office.FileDialog
Dim strArquivo As String

Set fd = Application.FileDialog(msoFileDialogFilePicker)

With fd

    .Filters.Clear
    .Filters.Add "Excel Files", "*.xlsx?", 1
    .Title = "Escolha um arquivo Excel"
    .AllowMultiSelect = False

    .InitialFileName = "C:\VBA Folder"

    If .Show = True Then

        strArquivo = .SelectedItems(1)

    End If

End With

Primeiro, você precisa declarar a variável fd do tipo Office.FileDialog e a variável string para a obtenção do arquivo:

Dim fd As Office.FileDialog
Dim strArquivo As String

Depois disso, você precisa definir fd como Application.FileDialog(msoFileDialogFilePicker):

Set fd = Application.FileDialog(msoFileDialogFilePicker)

Agora, em With fd End With, podemos definir vários parâmetros:

.Filters.Clear

.Filters.Add "Excel Files", "*.xlsx?", 1

.Title = "Escolha um arquivo Excel"

.AllowMultiSelect = False

Aqui, limpamos os filtros de arquivo (.Filters.Clear) e o definimos como .xlsx (.Filters.Add “Excel Files”, “*.xlsx?”, 1).

Além disso, podemos definir o título da caixa de diálogo: .Title = “Escolha um arquivo Excel”.

Podemos limitar o usuário a selecionar apenas um arquivo por meio de:

.AllowMultiSelect = False

Para abrir uma caixa de diálogo na pasta que desejamos, precisamos colocar esta linha do código:

.InitialFileName = "C:\VBA Folder"

No final, abriremos apenas a caixa de diálogo com todos os parâmetros definidos anteriormente:

If .Show = True Then

    strArquivo = .SelectedItems(1)

End If

Quando executamos esse código, a caixa de diálogo para abrir o arquivo aparece na pasta C:\VBA Folder:

escolha arquivo diretorio especifico

Imagem 2. Abrir uma caixa de diálogo de arquivo em uma pasta específica

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA