VBA FileDialog

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 selecionar 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 qualquer outra planilha e como o VBA é usado para automatizar nosso trabalho, podemos abrir diferentes outros arquivos usando o VBA e isso é feito usando o Filedialog, a parte legal de usar isso 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 nosso artigo anterior “VBA Workbook.Open”, mostramos como abrir arquivos com 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 os diferentes arquivos de diferentes pastas. É aqui que a opção “FileDialog” entra em cena.

Como funciona a opção VBA FileDialog?

“Se você não sabe o caminho exato, FileDialog irá 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.

Você pode baixar este modelo VBA FileDialog Excel aqui - modelo VBA FileDialog Excel

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

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

Como podemos ver na imagem acima, o FileDialog tem 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 With Statement, podemos projetar a caixa de diálogo.

Dentro de 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 FALSE o usuário 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 isso, use o Nome do arquivo inicial.

Para isso, é preciso 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, a pasta mencionada foi aberta 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.

Agora, dentro da instrução with, selecione “SelectedItems”. Atribua o caminho da pasta de itens selecionados à variável recém-definida.

Agora, finalmente, mostre o caminho da pasta selecionada na caixa de mensagem do VBA.

Agora irei executar o programa para ver a caixa de diálogo.

Agora selecionei o nome do arquivo como “1. Charts.xlsx ”na subpasta“ Charts ”. Se eu clicar em OK, podemos ver o caminho completo da pasta na caixa de mensagem.

Assim, podemos utilizar a opção FileDialog para selecionar os arquivos da pasta no Excel. Use o código abaixo para selecionar os arquivos.

Código:

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: \ Arquivos Excel" .Show FileAddress = .SelectedItems (1) End With MsgBox FileAddress End Sub