O VBA permite que você escolha um arquivo para abrir usando o Application.GetOpenFilename método. Neste tutorial, você aprenderá como abrir uma caixa de diálogo de arquivo e definir parâmetros.
Se você quiser aprender como abrir e fechar um arquivo, pode clicar neste link: VBA Open / Close File
Abra uma caixa de diálogo de arquivo no VBA
Se você deseja 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:
123 | Dim strFile As StringstrFile = Application.GetOpenFilename ( |
Como você pode ver, o método possui vários parâmetros. FileFilter permite filtrar os tipos de arquivo de que você precisa, em nosso caso, arquivos .xlsx.
No Título parâmetro, você pode definir um título da caixa de diálogo. Se você deseja permitir a abertura de vários arquivos, é necessário definir MultipleSelect para verdadeiro. Se você não definir este parâmetro, apenas um arquivo pode ser selecionado.
Imagem 1. Abra 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. Apenas os arquivos do Excel são filtrados e podemos selecionar vários arquivos.
Abra uma caixa de diálogo de arquivo em uma pasta específica
Se você deseja abrir uma caixa de diálogo em uma pasta específica, você deve usar o método .FileDialog com o parâmetro msoFileDialogFilePicker. No exemplo, vamos abrir uma caixa de diálogo na pasta Pasta C: \ VBA. Aqui está o código:
123456789101112131415161718192021 | Dim fd As Office.FileDialogDim strFile As StringDefina fd = Application.FileDialog (msoFileDialogFilePicker)Com fd.Filters.Clear.Filtros.Adicionar "Arquivos Excel", "* .xlsx?", 1.Title = "Escolha um arquivo Excel".AllowMultiSelect = False.InitialFileName = "C: \ Pasta VBA"Se .Show = True ThenstrFile = .SelectedItems (1)Fim seTerminar com |
Primeiro você precisa declarar a variável fd modelo Office.FileDialog e a variável de string para obtenção de arquivo:
12 | Dim fd As Office.FileDialogDim strFile As String |
Depois disso, você precisa definir fd para Application.FileDialog (msoFileDialogFilePicker):
1 | Defina fd = Application.FileDialog (msoFileDialogFilePicker) |
Agora, dentro Com fd End With, podemos definir vários parâmetros:
1234567 | .Filters.Clear.Filtros.Adicionar "Arquivos Excel", "* .xlsx?", 1.Title = "Escolha um arquivo Excel".AllowMultiSelect = False |
Aqui nós limpamos os filtros de arquivo (.Filters.Clear) e defina-o como .xlsx (.Filters.Add “Arquivos Excel”, “* .xlsx?”, 1).
Além disso, podemos definir o título da caixa de diálogo: .Title = “Escolha um arquivo Excel”.
Podemos limitar um usuário a selecionar apenas um arquivo por:.AllowMultiSelect = False
Para abrir uma caixa de diálogo na pasta que queremos, precisamos colocar esta linha do código:
1 | .InitialFileName = "C: \ Pasta VBA" |
Ao final, abriremos apenas a caixa de diálogo com todos os parâmetros previamente configurados:
12345 | Se .Show = True ThenstrFile = .SelectedItems (1)Fim se |
Quando executamos este código, a caixa de diálogo para a abertura do arquivo aparece na pasta Pasta C: \ VBA:
Imagem 2. Abra uma caixa de diálogo de arquivo em uma pasta específica