Como excluir em lote vários arquivos indesejados ou não utilizados com o Excel VBA

Compartilhe agora:

Pode haver vários arquivos indesejados e não utilizados consumindo seu espaço em disco. Limpar esses arquivos pode ser uma tarefa enorme. Com o Excel, você pode encontrar facilmente esses arquivos não utilizados e excluí-los instantaneamente para liberar espaço em disco.

Faça o download

Se você quiser start para usar o software o mais rápido possível, então você pode:

Baixe o software agora

Caso contrário, se você quiser DIY, pode ler o conteúdo abaixo.

Vamos preparar a GUI

Remova planilhas indesejadas da pasta de trabalho e renomeie a Planilha 1 como GUI e salve a pasta de trabalho como pasta de trabalho habilitada para macro. Conforme mostra a imagem anexa, crie dois botões na planilha e renomeie o Botão 1 como “Browse” e renomeie o Botão 2 como “Delete Files”. Você pode mesclar várias colunas para criar uma coluna maior para acomodar o caminho do arquivo ou aumentar a largura de uma única coluna.Preparar a GUI

Vamos torná-lo funcional

Copie o script para um novo módulo em sua pasta de trabalho habilitada para macro. Certifique-se de que o nome do módulo seja Module1. Caso contrário, o script gerará um erro. Anexe o script “Scan_This_Folder” ao botão “Browse” e o procedimento “Delete_Files” deve ser anexado ao botão “Delete Files”.

Sub filefordelete()
    Dim v_var1 As Scripting.FileSystemObject
    Dim v_var2 As Scripting.Folder
    Dim v_var3 As Scripting.File
    scanthis = Range("B3").Text
    Set v_var1 = New Scripting.FileSystemObject
    Set v_var2 = v_var1.GetFolder(scanthis)
    i = 7
    For Each v_var3 In v_var2.Files
        Cells(i, 2) = v_var3
        Cells(i, 11) = v_var3.DateLastModified
        i = i + 1
    Next v_var3
    Set v_var1 = Nothing
End Sub

Sub Delete_Files()
    Dim lr As Long
    Dim r As Long
    lr = Range("B" & Rows.Count).End(xlUp).Row
    For r = 7 To lr
        Kill Range("B" & r).Value
    Next r
End Sub

Function scanthisfolder() As String
    Dim v1 As FileDialog
    Dim v2 As String
    Set v1 = Application.FileDialog(msoFileDialogFolderPicker)
    With v1
        .Title = "Folder to scan for files"
        .AllowMultiSelect = False
        If .Show <> -1 Then GoTo NextCode
        v2 = .SelectedItems(1)
    End With
NextCode:
    scanthisfolder = v2
    Set v1 = Nothing
End Function

Sub Scan_This_Folder()
    Range("B3").Value = scanthisfolder()
    Call Module1.filefordelete
End Sub

Como funciona?

Código VBAQuando o usuário seleciona uma pasta, o script lê todos os arquivos dentro da pasta selecionada e exibe o nome do arquivo junto com a data da última modificação. Verifique a lista, remova as linhas se quiser manter o arquivo e clique no botão "Excluir arquivos". O script agora identificará a última linha usada e excluirá os arquivos lendo o caminho do arquivo da planilha.

Ajuste-o

A partir de agora, o script verifica os arquivos dentro da pasta selecionada. Se houver subpastas dentro da pasta selecionada, o script não poderá verificá-la. Você pode ajustar o script para verificar todas as subpastas dentro da pasta raiz e também criar uma nova coluna para comparar a “Data da última modificação” dos arquivos com a data atual e exibir os dias. Você pode ajustar o script para excluir arquivos automaticamente com base na contagem de dias. Embora o script use a técnica de script de arquivo da Microsoft, as propriedades do arquivo de danificado xlsx os arquivos não podem ser recuperados.

Introdução do autor:

Nick Vipond é um especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo recuperar palavra e produtos de software de recuperação do Outlook. Para mais informações visite www.datanumen.com.

Compartilhe agora:

Comentários estão fechados.