ExcelVBAで複数の不要なファイルまたは未使用のファイルをバッチ削除する方法

今すぐ共有:

ディスク容量を消費する不要な未使用のファイルがいくつかある可能性があります。 これらのファイルのクリーニングは大きな作業になる可能性があります。 Excelを使用すると、このような未使用のファイルを簡単に見つけてすぐに削除し、ディスク領域を解放できます。

ダウンロード

あなたがしたい場合tarできるだけ早くソフトウェアを使用するには、次のことができます。

今すぐソフトウェアをダウンロード

それ以外の場合、DIYをしたい場合は、以下の内容を読むことができます。

GUIを準備しましょう

不要なシートをワークブックから削除し、シート1の名前をGUIに変更して、ワークブックをマクロ対応のワークブックとして保存します。 添付の画像に示すように、シートに1つのボタンを作成し、ボタン2の名前を「参照」に変更し、ボタンXNUMXの名前を「ファイルの削除」に変更します。 複数の列をマージしてファイルパスに対応するために大きな列を作成するか、単一の列の幅を増やすことができます。GUIを準備する

機能させましょう

マクロが有効なブックの新しいモジュールにスクリプトをコピーします。 モジュール名がModule1であることを確認してください。 そうしないと、スクリプトはエラーをスローします。 スクリプト「Scan_This_Folder」を「参照」ボタンに添付し、プロシージャ「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

システムを教えてください。

VBAコードユーザーがフォルダーを選択すると、スクリプトは選択されたフォルダー内のすべてのファイルを読み取り、ファイル名と最終変更日を表示します。 リストを確認し、ファイルを保持する場合は行を削除してから、[ファイルの削除]ボタンをクリックします。 スクリプトは、最後に使用された行を識別し、シートからファイルパスを読み取っているファイルを削除します。

微調整する

現在のところ、スクリプトは選択したフォルダー内のファイルをスキャンします。 選択したフォルダー内にサブフォルダーがある場合、スクリプトはそれをスキャンできません。 スクリプトを微調整して、ルートフォルダー内のすべてのサブフォルダーをスキャンし、新しい列を作成して、ファイルの「最終変更日」を現在の日付と比較し、日数を表示することもできます。 次に、スクリプトを微調整して、日数に基づいてファイルを自動的に削除できます。 スクリプトはMicrosoftのファイルスクリプト手法を使用していますが、 破損したxlsx ファイルを取得できません。

著者紹介:

Nick Vipondは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 ワードを回復する と見通し回復ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com.

今すぐ共有:

コメントは締め切りました。