Pular para o conteúdo principal

Criando uma planilha que liste todo conteúdo de uma Pasta (windows)

Diariamente, gastava em torno de uma hora, para efetuar a validação de meus backups. Meus backups são salvos em uma pasta, onde eu tinha que entrar em efetuar o preenchimento de uma planilha com os nomes, tamanho e data de cada um dos arquivos. Para facilitar, criei um script em VBA, onde automatizei a geração da planilha, economizando muito tempo.

Abaixo segue o procedimento que utilizei para essa atividade.

Abri o Excel:


Adicionei a Aba de desenvolvimento.

Clique no icone:

Selecione "Opeções do Excel"


Selecione a opção "Mostrar guia Desenvolvedor na Faixa de Opção"


Clique na Aba "Desenvolvedor"

Selecione a opção Visual Basic



Na Tela do Visual Basic, clique com o botão direito do mouse em cima da Planilha, e em seguinda selecione Exibir código.


Copie o script abaixo para a tela:



Sub ListaArquivos()
    'Se quiser utilizar Early Binding, adicione a biblioteca Microsoft Scripting Runtime
   
    'Mude esse valor para buscar outro caminho:
    Const strCaminho As String = "CAMINHO DA PASTA"
   
    'Declaração de variáveis:
    Dim fso As Object 'Scripting.FileSystemObject
    Dim fld As Object 'Scripting.Folder
    Dim fl As Object 'Scripting.File
    Dim n As Long
   
    'Aqui é criado o objeto que comunica com as pastas do computador
    Set fso = CreateObject("Scripting.FileSystemObject")
   
    'Esse objeto executa um método do FileSystemObject
    'para buscar atribuir à variável fld uma pasta
    Set fld = fso.GetFolder(strCaminho)
   
    With ActiveSheet
        'Limpa e formata a Planilha ativa:
        .Cells.Delete
        .Range("A1:D1") = Array("Caminho", "Nome", "Tamanho", "Modificado em:")
        n = 2
       
        'Laço em cada arquivo do caminho desejado:
        For Each fl In fld.Files
            .Cells(n, "A") = fl.Path 'Caminho completo
            .Cells(n, "B") = fl.Name 'Nome
            .Cells(n, "C") = fl.Size 'Tamanho
            .Cells(n, "D") = fl.DateLastModified 'Data de Modificação
            'Note que você poderia adicionar outras propriedades dos arquivos em outras colunas
            'Nesse exemplo foram mostrados como visualizar apenas quatro de muitas propriedades de um arquivo
            n = n + 1
        Next fl
    End With
End Sub


Execute o script

Selecione a planilha e veja o resultado





Para listar diretorios e sub-diretorios, utilize o script abaixo:

Dim n As Long

Sub GerarÁrvoreCompleta()
   
    Const strCaminho As String = "CAMINHO"
   
    Dim fso As Object 'Scripting.FileSystemObject
    Dim fld As Object 'Scripting.Folder
   
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fld = fso.GetFolder(strCaminho)
   
    With ActiveSheet
        .Cells.Delete
        .Range("A1:D1") = Array("Caminho", "Nome", "Tamanho", "Modificado em")
        n = 2
       
        DescePasta fld
    End With
   
End Sub

Private Sub DescePasta(fld As Object) 'fld As Scripting.Folder
   
    Dim subfld As Object 'Scripting.Folder
    Dim fl As Object 'Scripting.File
   
    'Etapa 1 - Listar todos os arquivos desta Pasta.
    For Each fl In fld.Files
        Cells(n, "A") = fl.Path
        Cells(n, "B") = fl.Name
        Cells(n, "C") = fl.Size
        Cells(n, "D") = fl.DateLastModified
        n = n + 1
    Next fl
   
    'Etapa 2 - Recursar todas as subpastas desta pasta:
    For Each subfld In fld.SubFolders
        DescePasta subfld
    Next subfld
   
End Sub



Comentários