Já sabemos como abrir ou salvar um arquivo Excel em VBA. Simplesmente usamos o método Open e SaveAs do objeto Workbook. Mas isso requer codificação permanente do caminho do arquivo. Porém, na maioria das vezes, você desejará que o usuário final selecione um arquivo usando a GUI ou diga Arquivo Abrir ou Salvar como caixa de diálogo que permite ao usuário escolher o local do arquivo de forma visual e fácil.
Neste artigo, abordamos o código usado para exibir a caixa de diálogo de abertura da pasta de trabalho e salvar como caixa de diálogo.
Anexei uma pasta de trabalho que você pode baixar. A pasta de trabalho anexada a este artigo contém três macros
Código VBA para abrir arquivo usando a caixa de diálogo Abrir arquivo
Neste código, usaremos o método GetOpenFilename de Application. A sintaxe do método GetOpenFilename é:
Application.GetOpenFilename ([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect])
[FileFilter]: Você pode definir para mostrar apenas um tipo de arquivo na pasta selecionada. Se você escrever "Arquivos do Excel, * .xlsx, * .xls, * .xlsm" etc., apenas os arquivos do Excel serão mostrados da pasta na caixa de diálogo de abertura de arquivo.
[FilterIndex]:É o número de filtros de arquivo que você deseja usar.
[Título]: O título da caixa de diálogo.
[Botão de texto]:Para especificar o texto do botão. Não é importante.
[MultiSelect]: É uma variável booleana. Se você definir True ou 1, poderá selecionar mais de um arquivo. Se você defini-lo como falso, só poderá selecionar um arquivo.
Chega de teoria. Vamos fazer alguns feitiços.
Código VBA para abrir um arquivo por vez
Option Explicit Sub OpenOneFile () Dim FileName As Variant 'Exibindo a caixa de diálogo de arquivo aberto FileName = Application.GetOpenFilename ("Excel-files, *. Xls", _ 1, "Selecione um arquivo para abrir",, False)' Usuário didn 't selecionar um arquivo If TypeName (FileName) = "Boolean" Then Exit Sub' Abra a pasta de trabalho Workbooks.Open FileName End Sub
Como funciona?
Quando você executa esse segmento de código, o método GetOpenFilename para o objeto Aplicativo abre uma caixa de diálogo Abrir arquivo. O título da caixa de diálogo será "Selecione um arquivo para abrir", conforme definido no código. Se você selecionar um arquivo, o código Worbook.Open será executado e o arquivo será aberto. Se você não selecionar um arquivo, o sub será fechado sem executar o código Workbook.Open.
Código VBA para abrir um ou mais arquivos por vez
Este segmento de código abrirá a caixa de diálogo de abertura de arquivo, mas você poderá selecionar mais de um arquivo ao mesmo tempo.
Sub OpenMultipleFiles () Dim FileName As Variant, f As Integer 'Exibindo a caixa de diálogo de abertura do arquivo FileName = Application.GetOpenFilename ("Excel-files, *. Xlsx", _ 1, "Selecione um ou mais arquivos para abrir",, True ) 'O usuário não selecionou um arquivo If TypeName (FileName) = "Boolean" Then Exit Sub' Abra todas as pastas de trabalho selecionadas pelo usuário Para f = 1 Para UBound (FileName) Workbooks.Open FileName (f) Next f End Sub
Observe que aqui definimos a variável multiselect para True. Isso permitirá a seleção múltipla do arquivo.
Código VBA para abrir a caixa de diálogo Salvar como
Para abrir uma caixa de diálogo Salvar como, usaremos o método GetSaveAsFilename do objeto Aplicativo. A sintaxe do método é:
Application.GetSaveAsFilename ([InitialFileName], [FileFilter], [FilterIndex], [Title], [ButtonText])
[InitialFileName]:O nome do arquivo inicial. Se você não renomear o arquivo ao salvá-lo, ele será salvo com este nome.
[FileFilter]: Você pode definir para mostrar apenas um tipo de arquivo na pasta selecionada. Se você escrever "Arquivos do Excel, * .xlsx, * .xls, * .xlsm" etc., apenas os arquivos do Excel serão mostrados da pasta na caixa de diálogo de abertura de arquivo.
[FilterIndex]: O índice de filtro do arquivo.
[Título]:O título da caixa de diálogo.
[Botão de texto]:Isso é usado no sistema Mac para alterar o nome do botão.
Siga abaixo para o código
Sub SaveFile () Dim FileName As Variant 'Exibindo a caixa de diálogo salvar como FileName = Application.GetSaveAsFilename ("MyFileName.xls", _ "Excel files, *. Xls", 1, "Selecione sua pasta e nome de arquivo")' User didn ' t salvar um arquivo If TypeName (FileName) = "Boolean" Then Exit Sub 'Salvar a pasta de trabalho ActiveWorkbook.SaveAs FileName End Sub
A macro SaveFile usa o método GetSaveAsFilename do objeto Aplicativo para abrir a caixa de diálogo Salvar como, atribuindo o nome do arquivo e selecionando o local para salvar a pasta de trabalho.
Então sim pessoal, é assim que você pode usar a caixa de diálogo para abrir e salvar arquivos usando o VBA. Espero que tenha sido útil. Se você tiver alguma dúvida sobre este artigo ou qualquer outro tópico do VBA, pergunte na seção de comentários abaixo.
Use uma pasta de trabalho fechada como banco de dados (DAO) usando VBA no Microsoft Excel | Para usar uma pasta de trabalho fechada como banco de dados com conexão DAO, use este trecho de VBA no Excel.
Use uma pasta de trabalho fechada como um banco de dados (ADO) usando VBA no Microsoft Excel | Para usar uma pasta de trabalho fechada como um banco de dados com conexão ADO, use este trecho de VBA no Excel.
Introdução aos Formulários de Usuário do Excel VBA | Para inserir dados no banco de dados, usamos formulários. Os UserForms do Excel são úteis para obter informações do usuário. Aqui está como você deve começar com formulários de usuário do VBA.
Altere o valor / conteúdo de vários controles de formulário de usuário usando VBA no Excel | Para alterar o conteúdo dos controles do formulário do usuário, use este snippet VBA simples.
Evita que um formulário do usuário feche quando o usuário clica no botão x usando o VBA no Excel | Para evitar que o formulário do usuário feche quando o usuário clicar no botão x do formulário, usamos o evento UserForm_QueryClose.
Artigos populares:
50 atalhos do Excel para aumentar sua produtividade | Torne sua tarefa mais rápida. Esses 50 atalhos farão você trabalhar ainda mais rápido no Excel.
A função VLOOKUP no Excel | Esta é uma das funções mais usadas e populares do Excel, que é usada para pesquisar valores em diferentes intervalos e planilhas.
CONT.SE no Excel 2016 | Conte valores com condições usando esta função incrível. Você não precisa filtrar seus dados para contar um valor específico. A função Countif é essencial para preparar seu painel.
Como usar a função SUMIF no Excel | Esta é outra função essencial do painel. Isso ajuda você a somar valores em condições específicas