Função Dir

Retorna uma String que representa o nome de um arquivo, diretório ou pasta que corresponde a um padrão ou atributo de arquivo especificados ou o rótulo do volume de uma unidade.

Sintaxe

Dir [ (nomedocaminho, [ atributos ] ) ]

A sintaxe da função Dir tem as seguintes partes:

Parte Descrição
nomedocaminho Opcional. Expressão de cadeia de caracteres que especifica um nome de arquivo. Pode incluir diretório ou pasta e unidade. Uma cadeia de comprimento zero ("") é retornada se o nomedocaminho não for encontrado.
atributos Opcional. Constante ou expressão numérica, cuja soma especifica os atributos de arquivo. Caso seja omitida, retorna arquivos que correspondem ao nomedocaminho, mas não apresentam atributos.

Configurações

As configurações do argumento de atributos são:

Constant Valor Descrição
vbNormal 0 (Padrão) Especifica arquivos sem atributos.
vbReadOnly 1 Especifica arquivos somente leitura além dos arquivos sem atributos.
vbHidden 2 Especifica arquivos ocultos além de arquivos sem atributos.
vbSystem 4 Especifica arquivos do sistema além de arquivos sem atributos. Indisponível no Macintosh.
vbVolume 8 Especifica o rótulo do volume; se qualquer outro atributo for especificado, vbVolume será ignorado. Indisponível no Macintosh.
vbDirectory 16 Especifica diretórios ou pastas além de arquivos sem atributos.
vbAlias 64 O nome do arquivo especificado é um alias. Disponível somente no Macintosh.

Observação

Essas constantes são especificadas pelo Visual Basic for Applications e podem ser usadas em qualquer lugar em seu código no lugar dos valores reais.

Comentários

No Microsoft Windows e no macOS, Dir dá suporte ao uso de vários caracteres (*) e caracteres únicos (?) curingas para especificar vários arquivos.

Como o Macintosh não é compatível com caracteres curinga, use o tipo de arquivo para identificar grupos de arquivos. Use a função MacID para especificar o tipo de arquivo em vez de usar os nomes dos arquivos. Por exemplo, a instrução a seguir retorna o nome do primeiro arquivo de TEXTO na pasta atual:

Dir("SomePath", MacID("TEXT"))

Para iterar sobre todos os arquivos em uma pasta, especifique uma cadeia de caracteres vazia:

Dir()

Se você usar a função MacID com Dir no Microsoft Windows, ocorre um erro.

Qualquer valor de atributo maior do que 256 será considerado um valor MacID.

Você deve especificar o nomedocaminho na primeira vez que chamar a função Dir ou ocorrerá um erro. Se você também especificar atributos de arquivo, o nomedocaminho deve ser incluído.

Dir retorna o primeiro nome do arquivo correspondente ao nomedocaminho. Para obter os nomes de arquivos adicionais que correspondam ao nomedocaminho, chame Dir novamente sem argumentos. Quando não houver mais correspondência de nomes de arquivo, Dir retornará uma cadeia de comprimento zero (""). Quando uma cadeia de comprimento zero for retornada, você deve especificar o nomedocaminho em chamadas subsequentes ou ocorrerá um erro.

Você pode mudar para um novo nomedocaminho sem recuperar todos os nomes de arquivo que correspondam ao nomedocaminhoatual. No entanto, você não pode chamar a função Dir recursivamente. Chamar Dir com o atributo vbDirectory não retorna subpastas continuamente.

Dica

Como os nomes de arquivo são recuperados na ordem de classificação de maiúsculas e minúsculas no Windows e na ordem de classificação de maiúsculas e minúsculas no macOS, convém armazenar os nomes dos arquivos retornados em uma matriz e classificar a matriz.

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.