Função eficiente de obter nomes de arquivos do Excel VBA
Preciso obter uma coleção de nomes de arquivos de uma pasta em um servidor remoto usando o VBA no excel 2010. Eu tenho uma função que funciona e, na maioria dos casos, ele faria o trabalho, no entanto, o servidor remoto freqüentemente tem um nível terrível,terrivel problemas de desempenho da rede. Isso significa que percorrer, digamos, 300 arquivos para colocar seus nomes em uma coleção pode levar 10 minutos, o número de arquivos na pasta provavelmente aumentará para milhares, portanto, isso não é viável, eu preciso de uma maneira de obter todos os nomes de arquivos em uma única solicitação de rede e sem loop. Acredito que esteja se conectando ao servidor remoto que está demorando, para que uma única solicitação seja capaz de obter todos os arquivos em uma única passagem rapidamente.
Esta é a função que atualmente tenho:
Private Function GetFileNames(sPath As String) As Collection
'takes a path and returns a collection of the file names in the folder
Dim oFolder As Object
Dim oFile As Object
Dim oFSO As Object
Dim colList As New Collection
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(folderpath:=sPath)
For Each oFile In oFolder.Files
colList.Add oFile.Name
Next oFile
Set GetFileNames = colList
Set oFolder = Nothing
Set oFSO = Nothing
End Function