VBA FileDialog - Como abrir o FilesDialog Box usando o código VBA?

Excel VBA FileDialog

No VBA fieldialog é uma propriedade que é usada para representar diferentes instâncias, em filedialog existem quatro tipos diferentes de constantes que são conhecidas como msofiledialogfilepicker que é usado para selecionar um arquivo de um determinado caminho, o segundo é msofiledialogfolderpicker cujo nome sugere ser usado para escolher uma pasta e o terceiro é msofiledialog aberto para abrir um arquivo e o último é msofiledialogsaveas que é usado para salvar um arquivo como um novo arquivo.

Existem certas circunstâncias em que queremos os dados de qualquer outro arquivo ou planilha, e como o VBA é usado para automatizar nosso trabalho, podemos abrir diferentes outros arquivos usando o VBA, e isso é feito usando a caixa de diálogo Arquivo, a parte legal de usar este método é que não precisamos fornecer o caminho para o código, em vez disso, pedimos ao usuário para navegar pelo arquivo.

Como parte do projeto VBA, podemos exigir a abertura de outras pastas de trabalho e executar algum tipo de tarefa com elas. Em um dos artigos anteriores, “VBA Workbook.Open”, mostramos como abrir arquivos com um caminho e arquivo específicos. Lá, precisamos fornecer o caminho da pasta e o nome do arquivo com sua extensão. Mas e se toda vez que um usuário tiver que selecionar arquivos diferentes de pastas diferentes. É aqui que a opção “FileDialog” entra em cena.

Como funciona a opção VBA FileDialog?

“Se você não souber o caminho exato, FileDialog encontrará e selecionará o arquivo para você.” Em vez de mencionar o endereço do caminho e o nome do arquivo, podemos apresentar uma janela de diálogo de abertura de arquivo separadamente para selecionar o arquivo de qualquer pasta do computador.

“FileDialog” é um objeto em VBA. Para usar esta opção primeiro, precisamos definir a variável como FileDialog.

Depois que a variável é declarada como “FileDialog”, ela é uma variável de objeto. Para começar a usar isso, precisamos definir o objeto usando o Application.FileDialog.

Como podemos ver na imagem acima, FileDialog possui quatro opções com ele.

  • msoFileDialogFilePicker: Esta opção abre a janela do seletor de arquivos na frente do usuário para selecionar o arquivo desejado como desejar.
  • msoFileDialogFolderPicker: Esta opção abre a caixa de diálogo ou janela na frente do usuário para selecionar a pasta.
  • msoFileDialogOpen: Isso permitirá que o usuário abra o arquivo selecionado da pasta.
  • msoFileDialogSaveAs: Isso permitirá que o usuário salve o arquivo como uma cópia diferente.

A partir de agora, selecionei a opção de msoFileDialogFilePicker.

Agora precisamos projetar a caixa de diálogo que aparece à nossa frente.

Usando a instrução With, podemos projetar a caixa de diálogo.

Dentro do com a instrução, coloque um ponto para ver a lista do IntelliSense das propriedades e métodos da opção FileDialog.

Para ver apenas os arquivos do Excel quando a caixa de diálogo do arquivo for aberta, primeiro precisamos remover qualquer um dos filtros aplicados.

Agora precisamos aplicar um novo filtro como “Arquivos Excel” com extensão curinga dos arquivos excel.

Agora vamos mudar o título da caixa de diálogo do arquivo.

Podemos permitir que o usuário selecione apenas um arquivo por vez ou também podemos permitir que ele selecione vários arquivos. Para isso, precisamos usar “Permitir seleção múltipla”.

Temos duas opções aqui. Se TRUE for selecionado, permitirá que o usuário selecione vários arquivos. Se for, o usuário FALSE pode selecionar apenas um arquivo por vez.

Outra coisa que podemos projetar com FileDialog é que podemos realmente insistir em qual deve ser a pasta padrão quando a caixa de diálogo do arquivo aparecer. Para este uso, Nome do arquivo inicial.

Para isso, precisamos citar a pasta padrão a ser aberta o caminho do endereço.

Agora, finalmente, precisamos aplicar o método “Show” para ver a caixa de diálogo do arquivo.

Código:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Com Myfile .Filters.Clear .Filters.Add "Arquivos Excel", "* .xlsx?", 1 .Title = "Escolha seu arquivo Excel !! ! " .AllowMultiSelect = False .InitialFileName = "D: Arquivos Excel" .Mostrar End With End Sub

Agora execute o código VBA para ver o resultado.

Como podemos ver na caixa de diálogo do arquivo de imagem acima abriu a pasta mencionada por padrão.

Agora podemos selecionar qualquer subpasta e selecionar os arquivos do Excel.

Veja a imagem acima porque aplicamos o parâmetro de filtro apenas como “Arquivos Excel”.

Isso apenas selecionará o arquivo da pasta mencionada. Para armazenar o caminho completo, precisamos declarar mais uma variável como uma string.

Now inside the with the statement, select “SelectedItems.” Assign the selected items folder path to the newly defined variable.

Now finally show the selected folder path in the VBA message box.

Now I will run the program to see the dialogue box.

Now I have selected the File Name as “1. Charts.xlsx” in the subfolder “Charts.” If I click on OK, we can see the full folder path in the message box.

So, like this, we can use the FileDialog option to select the files from the folder in Excel. Use the below code to select the files.

Code:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress As String Com Myfile .Filters.Clear .Filters.Add "Arquivos Excel", "* .xlsx?", 1 .Title = "Escolha seu Arquivo Excel !!! " .AllowMultiSelect = False .InitialFileName = "D: Excel Files" .Show FileAddress = .SelectedItems (1) End With MsgBox FileAddress End Sub

Artigos interessantes...