Mais uma para a caixa de ferramentas de VBA. A macro abaixo retorna um Array de String com a lista de nomes dos arquivos contidos na pasta informada:
Public Function ListaArquivos(ByVal Caminho As String) As String() 'Atenção: Faça referência à biblioteca Micrsoft Scripting Runtime Dim FSO As New FileSystemObject Dim result() As String Dim Pasta As Folder Dim Arquivo As File Dim Indice As Long ReDim result(0) As String If FSO.FolderExists(Caminho) Then Set Pasta = FSO.GetFolder(Caminho) For Each Arquivo In Pasta.Files Indice = IIf(result(0) = "", 0, Indice + 1) ReDim Preserve result(Indice) As String result(Indice) = Arquivo.Name Next End If ListaArquivos = result ErrHandler: Set FSO = Nothing Set Pasta = Nothing Set Arquivo = Nothing End Function |
A macro abaixo é um exemplo de chamada a função acima, listando os arquivos da pasta C:\temp, como informado no código.
Private Sub ListaArquivos() Dim arquivos() As String Dim lCtr As Long arquivos = ListaArquivos("C:\temp") For lCtr = 0 To UBound(arquivos) Debug.Print arquivos(lCtr) Next End Sub |
Importante: Faça referência à biblioteca Micrsoft Scripting Runtime para ter acesso aos objetos da File System Object (FSO), necessários para execução do exemplo.
Bom proveito!