Neste artigo, criaremos uma macro para reunir detalhes de todos os arquivos de uma pasta.
Antes de executar a macro, precisamos especificar o caminho da pasta na caixa de texto.
Ao executar a macro, ela retornará o nome do arquivo, caminho do arquivo, tamanho do arquivo, data de criação e data da última modificação de todos os arquivos da pasta.
Explicação lógica
Neste artigo, criamos duas macros “ListFilesInFolder” e “TestListFilesInFolder”.
A macro “ListFilesInFolder” exibirá detalhes relacionados a todos os arquivos dentro da pasta.
A macro “TestListFilesInFolder” é usada para especificar o cabeçalho e chamar a macro “ListFilesInFolder”.
Explicação do código
Defina FSO = CreateObject ("Scripting.FileSystemObject")
O código acima é usado para criar um novo objeto do objeto do sistema de arquivos.
Defina SourceFolder = FSO.GetFolder (SourceFolderName)
O código acima é usado para criar um objeto da pasta especificada pelo caminho.
Células (r, 1) .Fórmula = FileItem.Name
Células (r, 2) .Formula = FileItem.Path
Células (r, 3) .Formula = FileItem.Size
Células (r, 4) .Formula = FileItem.DateCreated
Células (r, 5) .Formula = FileItem.DateLastModified
O código acima é usado para extrair detalhes dos arquivos.
Para cada subpasta em SourceFolder.SubFolders
'Chamando o mesmo procedimento para subpastas
ListFilesInFolder SubFolder.Path, True
Próxima subpasta
O código acima é usado para extrair detalhes de todos os arquivos dentro das subpastas.
Colunas ("A: E"). Selecione
Selection.ClearContents
O código acima é usado para excluir o conteúdo das colunas A a E.
Siga abaixo para o código
Option Explicit Sub ListFilesInFolder (ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean) 'Declarando variáveis Dim FSO As Object Dim SourceFolder As Object Dim SubFolder As Object Dim FileItem As Object Dim r As Long' Criando o objeto de FileSystemObject Set FSO = CreateObject ("Scripting .FileSystemObject ") Definir SourceFolder = FSO.GetFolder (SourceFolderName) r = Range (" A65536 "). End (xlUp) .Row + 1 Para Cada FileItem Em SourceFolder.Files 'Exibir propriedades do arquivo Células (r, 1) .Formula = Células FileItem.Name (r, 2) .Formula = FileItem.Path Cells (r, 3) .Formula = FileItem.Size Cells (r, 4) .Formula = FileItem.DateCreated Cells (r, 5) .Formula = FileItem. DateLastModified r = r + 1 Next FileItem 'Obtendo arquivos em subpastas If IncludeSubfolders Then For each SubFolder In SourceFolder.SubFolders' Chamando o mesmo procedimento para subpastas ListFilesInFolder SubFolder.Path, True Next SubFolder End If Set FileItem = Nothing Set SourceFolder = Nothing Set FSO = Nada ActiveWorkbook.Saved = True End Sub Sub TestListFilesInFolder () 'Declarando variável Dim FolderPath As String' Desativando atualizações de tela Application.ScreenUpdating = False 'Obtendo o caminho da pasta da caixa de texto FolderPath = Sheet1.TextBox1.Value ActiveSheet.Activate' Limpando o conteúdo das colunas A: E Colunas ("A: E"). Selecione Selection.ClearContents 'Adicionando intervalo de cabeçalhos ("A14"). Fórmula = "Nome do arquivo:" Intervalo ("B14"). Fórmula = "Caminho:" Intervalo ("C14"). Fórmula = "Tamanho do arquivo:" Intervalo ("D14"). Fórmula = "Data de criação:" Intervalo ("E14"). Fórmula = "Data da última modificação:" 'Formatação do intervalo de cabeçalhos ("A14: E14"). Fonte .Bold = True 'Chamando a macro ListFilesInFolder ListFilesInFolder FolderPath, True' Ajustando automaticamente o tamanho das colunas Colunas ("A: E"). Selecione Selection.Columns.AutoFit Range ("A1"). Selecione End Sub
Se você gostou deste blog, compartilhe com seus amigos no Facebook. Além disso, você pode nos seguir no Twitter e no Facebook.
Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar nosso trabalho e torná-lo melhor para você. Escreva para nós no site de e-mail