Se pretendermos usar o Excel para listar o conteúdo de um directório ou de uma pasta, mostrando cada nome de ficheiro numa célula de uma coluna (no exemplo, coluna A) e mostrando, igualmente a data/hora na célula correspondente da coluna seguinte e ainda fazer com que as colunas fiquem com a sua largura ajustada ao tamanho do nome do ficheiro mais extenso, como no exemplo:
podemos utilizar o seguinte código:
' A partir do código apresentado num newsgroup por Tom Ogilvy
Sub ListDirectory()
Dim Msg As String
Dim rw As Long
Dim i As Long
Dim sDir As String
Msg = InputBox("Escolha o Path:")
sDir = Msg
If Len(Trim(Msg)) = 0 Then
MsgBox "Não seleccionou nada . . ."
Exit Sub
End If
With Application.FileSearch
.NewSearch
.LookIn = sDir
.SearchSubFolders = True
.FileName = "*.*"
.FileType = msoFileTypeAllFiles
rw = 2
If .Execute() > 0 Then
Sheets("Sheet1").Range("A:A").Clear
For i = 1 To .FoundFiles.Count
Sheets("Sheet1").Cells(rw, "A").Value = Dir(.FoundFiles(i))
Sheets("Sheet1").Cells(rw, "B").Value = FileDateTime(.FoundFiles(i))
rw = rw + 1
Next i
Else
MsgBox "Não foram encontrados ficheiros"
End If
End With
Sheets("Sheet1").Cells(1, 1).Value = "Nome do Ficheiro"
Sheets("Sheet1").Cells(1, 2).Value = "Data/Hora"
Columns("A:B").AutoFit
End Sub