Função VBA DIR

Função Excel VBA DIR

A função VBA DIR também é conhecida como função de diretório, esta é uma função embutida no VBA que é usada para nos fornecer o nome do arquivo de um determinado arquivo ou pasta, mas precisamos fornecer o caminho para o arquivo, a saída retornada por este function é string, pois retorna o nome do arquivo, há dois argumentos para esta função que são o nome do caminho e os atributos.

A função DIR retorna o primeiro nome de arquivo no caminho da pasta especificada. Por exemplo, em seu D Drive, se você tiver um nome de pasta chamado 2019 e, nessa pasta, se você tiver um arquivo Excel chamado “2019 Sales”, você pode acessar esse arquivo usando a função DIR.

A função “VBA DIR” é muito útil para obter o nome do arquivo usando sua pasta de caminho.

Sintaxe

Esta função possui dois argumentos opcionais.

  • [Path Name]: Conforme o nome diga qual é o caminho para acessar o arquivo. Pode ser o nome do arquivo, nome da pasta ou diretório também. Se algum caminho não for atribuído, retornarei o valor da string vazia, ou seja, “”
  • [Atributos]: Este também é um argumento opcional e você não pode usá-lo com muita frequência na codificação. Você pode especificar o atributo do arquivo em [Nome do caminho] e a função DIR procura apenas esses arquivos.

Por exemplo: Se você deseja acessar apenas arquivos ocultos, se deseja acessar apenas arquivos somente leitura, etc ... podemos especificar neste argumento. Abaixo estão os atributos que podemos usar.

Exemplos para usar a função VBA DIR

Você pode baixar este modelo VBA Dir Excel aqui - VBA Dir Excel Template

Exemplo # 1 - Acessando o nome do arquivo usando a função DIR

Vou explicar a você o exemplo simples de acessar o nome do arquivo usando a função DIR. Siga as etapas abaixo.

Etapa 1: Crie um nome de macro.

Etapa 2: Defina a variável como String .

Código:

 Sub Dir_Example1 () Dim MyFile As String End Sub 

Passo 3: Agora, para esta variável, atribuiremos valor usando a função DIR .

Código:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir (End Sub 

Etapa 4: Agora copie e cole o caminho da pasta de arquivos em seu computador. Mencione o nome do caminho entre aspas duplas.

Código:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template End Sub 

Etapa 5: mencionei meu caminho para a pasta, agora precisamos mencionar o nome do arquivo e sua extensão também. Para fazer isso, a primeira coisa que precisamos fazer é colocar uma barra invertida após o caminho (\)

Depois de inserir a barra invertida, precisamos inserir o nome completo do arquivo .

Código:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") End Sub 

Passo 6: Mostre o valor da variável na caixa de mensagem.

Código:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub 

Agora execute o código e veja qual é o resultado da caixa de mensagem.

Portanto, a função DIR retornou o nome do arquivo com a extensão do arquivo.

Exemplo # 2 - Abrir arquivo usando a função DIR

Agora, como abrimos o arquivo? Esta função pode retornar o nome do arquivo, mas abrir esse arquivo é um processo um pouco diferente. Siga as etapas abaixo para abrir o arquivo.

Etapa 1: Crie duas variáveis ​​como String .

Código:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String End Sub 

Etapa 2: Agora, para a variável FolderName , atribua o caminho da pasta.

Código:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" End Sub 

Etapa 3: Agora, para a variável FileName, precisamos obter o nome do arquivo usando a função DIR .

Código:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (End Sub 

Etapa 4: Agora, para Path Name, já atribuímos um caminho para a variável FolderPath, portanto, podemos fornecer a variável diretamente aqui.

Código:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName End Sub 

Etapa 5: agora precisamos fornecer o nome do arquivo. Usando o símbolo " e" comercial (&), atribua o nome do arquivo.

Código:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") End Sub 

Etapa 6: Agora use o método WORKBOOKS.OPEN .

Código:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open End Sub 

Etapa 7: o nome do arquivo é uma combinação de FolderPath e FileName . Portanto, combine esses dois.

Código:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open FolderName & FileName End Sub 

Agora execute este código para abrir o nome do arquivo mencionado.

Exemplo # 3 - Abra várias pastas de trabalho usando a função DIR

Actually, we can access all the workbooks in the folder. In order to access each and every file we cannot mention all the file names directly, but we can use the wildcard character to refer the file.

The asterisk (*) is one of those wildcard characters. It identifies any number of characters. For example, if you want to access all the macro files in the folder you can use the asterisk as the wildcard i.e. “*.xlsm*”

Here * will match any file name with the extension of the file is equal to “xlsm”.

Code:

 Sub Dir_Example3() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName & "*.xlsm*") Do While FileName  "" Workbooks.Open FolderName & FileName FileName = Dir() Loop End Sub 

Now the above code will open all the files in the folder path.

FileName = Dir() the reason why I have used this line because, in order to access the next file in the folder, we have to make the existing file name to nil. The moment we make the existing file name to nil when the loop runs for the second time it will take the next file in the folder.

Example #4 – Get all the File Names in the Folder

Suppose if you want the list of all the file names in the folder we can also do this by using attributes.

Code:

 Sub Dir_Example4() Dim FileName As String FileName = Dir("E:\VBA Template\", vbDirectory) Do While FileName  "" Debug.Print FileName FileName = Dir() Loop End Sub 

Make the immediate window visible by pressing Ctrl + G.

Now run the code we will get all the file names in the immediate window.