Função Excel VBA DIR
Dir é uma das funções disponíveis no VBA. A função Dir é para referenciar diretórios no código VBA.
A função que retorna o nome do arquivo ou diretório que corresponde ao atributo ou cadeia de caracteres especificada retorna o primeiro arquivo ou pasta. Em palavras simples, se temos uma pasta ABC e dentro de ABC existe um arquivo XYZ, podemos acessar o arquivo XYZ usando a função DIR no VBA.
Fórmula para a função DIR no Excel VBA
A função DIR possui a seguinte sintaxe no Excel VBA:
Ele tem duas partes, Nome do caminho e Atributos.
- Nome do caminho: pelo nome, todos podem entender que é o caminho do arquivo onde ele realmente existe. Se não inserirmos nenhum caminho no nome do caminho, ele retornará uma string vazia.
- Atributo: É um argumento opcional, não usamos muito disso. Podemos usar isso quando queremos abrir o arquivo com os atributos abaixo e o VBA procura esses arquivos.
vbArchive | Especifica arquivos ou arquivos de backup. |
vbNormal | Normal (padrão) ou sem atributos. |
vbReadOnly | arquivos somente leitura |
vbSystem | Arquivos do sistema |
vbVolume | rótulo de volume; Se você usar qualquer outro atributo com esse, o rótulo do volume será ignorado. |
vbDirectory | Diretórios ou pastas. |
vbHidden | arquivos ocultos |
vbAlias | O nome do arquivo é um alias |
Como usar a função DIR no Excel VBA?
Abaixo estão os diferentes exemplos para usar a Função DIR no Excel usando o código VBA.
Você pode fazer o download deste modelo do VBA DIR Excel aqui - Modelo do VBA DIR ExcelFunção VBA DIR - Exemplo # 1
Neste exemplo, veremos como acessar um nome de arquivo usando a função DIR no VBA.
Etapa 1: Vá para a guia Developers e clique em Visual Basic
Etapa 2: Abra um módulo na opção de menu Inserir, como mostrado abaixo.
Etapa 3: para iniciar qualquer macro, primeiro precisamos dar um nome à macro com a palavra-chave 'sub' como abaixo.
Código:
Sub myexample1 () End Sub
Lembre-se de que estamos escrevendo nosso código no “Módulo1” quando inserimos “sub myexample ()”, automaticamente o “End sub” aparecerá.
Etapa 4: defina uma string usando a palavra-chave " Dim ", que se refere à dimensão. Na captura de tela abaixo, "mystring" é o nome da string.
Código:
Sub myexample1 () Dim mystring As String End Sub
Lembre-se sempre que definir os nomes dos tipos de dados ou do programa, não deve haver espaço entre duas palavras. "Mystring" não há espaço entre "my" e "string".
O arquivo está disponível na pasta de amostra, disponível na área de trabalho, e o nome do arquivo é "KT tracker mine".
C: \ Usuários \ cba_13 \ Desktop \ Amostra \
Etapa 5: Agora precisamos armazenar o nome do arquivo em "mystring" usando a função Dir.
Código:
Sub myexample1 () Dim mystring As String mystring = Dir ("C: \ Users \ cba_13 \ Desktop \ Sample \") End Sub
Na captura de tela acima na função Dir, forneci o caminho do arquivo, excluindo o nome do arquivo. Como existe apenas um arquivo, ele retornará o nome do arquivo.
Etapa 6: Agora, com a etapa acima, o nome do arquivo armazenado na string "mystring". Para exibir o nome do arquivo, precisamos exibi-lo através de uma caixa de mensagem. Crie uma caixa de mensagem.
Código:
Sub myexample1 () Dim mystring As String mystring = Dir ("C: \ Users \ cba_13 \ Desktop \ Sample \") MsgBox (mystring) End Sub
Demos a instrução para exibir os dados em "mystring" através da caixa de mensagem, pois "mystring" tem nome de arquivo e exibirá o nome do arquivo através da caixa de mensagem.
Etapa 7: Agora execute o código clicando no botão Play ou pressionando a tecla F5.
Função VBA DIR - Exemplo # 2
Neste exemplo, veremos como abrir um arquivo usando a função DIR no Excel VBA.
Etapa 1: abra a tela de código VBA e comece fornecendo o nome do programa como "exemplo2" ou qualquer nome que você desejar.
Código:
Sub exemplo2 () End Sub
Etapa 2: defina duas cadeias com os nomes "Nome da pasta" e "Nome do arquivo".
Código:
Sub example2 () Dim Nome da pasta como string Dim Nome do arquivo como String End Sub
Etapa 3: agora atribua o caminho da pasta ao nome da pasta.
Código:
Sub example2 () Dim Nome da pasta como string Dim Nome do arquivo como String Nome da pasta = "C: \ Users \ cba_13 \ Desktop \ Sample \" End Sub
Etapa 4: atribua o arquivo ao "nome do arquivo" usando a função Dir. Aqui usamos a variável "Foldername" porque ela possui o caminho da pasta. Com a ajuda do e comercial, adicionamos o nome do arquivo ao caminho.
Código:
Sub example2 () Dim Nome da pasta como string Dim Nome do arquivo como String Nome da pasta = "C: \ Users \ cba_13 \ Desktop \ Sample \" Nome do arquivo = Dir (Nome da pasta e "KT Tracker mine.xlsx") End Sub
Agora, a função Dir retorna o nome do arquivo e ele será armazenado na variável "filename".
Etapa 5: no exemplo anterior, usamos a caixa de mensagem para ver os resultados. Mas, como queremos abrir o arquivo, usaremos o comando "workbooks.open".
Código:
Sub example2 () Dim Nome da pasta como string Dim Nome do arquivo como String Nome da pasta = "C: \ Users \ cba_13 \ Desktop \ Sample \" Nome do arquivo = Dir (Nome da pasta e "KT Tracker mine.xlsx") Pastas de trabalho.
Etapa 6: execute o código acima, ele abrirá o arquivo disponível na pasta “C: \ Users \ cba_13 \ Desktop \ Sample \” com o nome de arquivo “KT Tracker mine”.
Função VBA DIR - Exemplo # 3
Agora veremos o programa para saber se uma pasta está disponível ou não. Eu tenho a pasta "Dados", como mostrado abaixo.
Temos que verificar com a ajuda da função Dir se a pasta "Dados" está disponível no caminho C: \ Users \ cba_13 \ Desktop \ Sample \.
Etapa 1: Crie um nome de programa e defina duas cadeias com os nomes FD e FD1.
Código:
Sub example3 () Dim Fd Como String Dim Fd1 Como String End Sub
Etapa 2: atribua o caminho da pasta à variável "Fd".
Código:
Sub example3 () Dim Fd As String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" End Sub
Etapa 3: Agora use a função Dir para retornar o nome da pasta, como mostrado abaixo.
Código:
Sub example3 () Dim Fd As String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) End Sub
O resultado da função Dir deve ser o nome da pasta e ele será armazenado na variável de string Fd1. Se a pasta “Dados” não estiver disponível na respectiva pasta, ela não retornará nenhuma string.
Etapa 4: Agora precisamos verificar se o Fd1 tem uma pasta "Dados" ou não. Use a condição SE para verificar se Fd1 tem a sequência "Dados" ou não. Se estiver disponível, imprima a declaração como "Existe".
Código:
Sub example3 () Dim Fd As String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Se Fd1 = "Data", então MsgBox ("Exits") End Sub
Etapa 5: Caso Fd1 não corresponda à pasta "Dados", a declaração "Não existe" será impressa na outra condição.
Código:
Sub example3 () Dim Fd As String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Se Fd1 = "Data", então MsgBox ("Exits") MsgBox ("Não existe") End Sub
Etapa 6: finalize o loop "If", conforme mostrado na captura de tela abaixo.
Código:
Sub example3 () Dim Fd As String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Se Fd1 = "Data", então MsgBox ("Exits") MsgBox ("Não sai") End If End Sub
Etapa 7: execute o código pressionando a tecla F5 ou clicando no botão Play para verificar se a pasta está disponível ou não. Se a pasta "Dados" estiver disponível nessa pasta, ela retornará a caixa de mensagem com a mensagem "Existe" como abaixo.
Etapa 8: basta alterar o nome da pasta como Data1.
Sub example3 () Dim Fd As String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data1" Fd1 = Dir (Fd, vbDirectory) Se Fd1 = "Data", então MsgBox ("Exits") MsgBox ("Não sai") End If End Sub
Etapa 9: execute o código novamente. Agora, o resultado é "Não existe", como mostrado abaixo.
Coisas para lembrar
- Os argumentos na função Dir são opcionais.
- Se quisermos arquivos ocultos, pastas ou tipos diferentes de diretórios, mencione sua exigência no segundo argumento.
- Use “\” no final do nome da pasta enquanto fornece a função Dir para ir para a pasta.
- Se quisermos chamar ou abrir vários arquivos, podemos usar o caractere curinga "*" ou "?".
Artigos recomendados
Este é um guia para a função VBA DIR. Aqui discutimos como usar a função DIR no Excel VBA, juntamente com alguns exemplos práticos e o modelo do Excel para download. Você também pode consultar nossos outros artigos sugeridos -
- Pasta de trabalho do VBA
- Função indireta no Excel
- Contagem VBA
- Função XOR do Excel