VBA Delete Subfolders Older than X Days

VBA Delete Subfolders Older than X Days

VBA Delete Subfolders Older than 30 Days from a folder in Excel. In this following tutorial we are going to see how to delete files and sub-folders which are older than 30 days. Here we are checking for 30 days. You can change this number. It can be one week, one month, quarter, or year.

VBA Delete Subfolders Older than X Days

Let us see an example VBA macro code to delete Subfolders older than 30 days old from a folder in Excel. In the following example we are specifying folder path. Once we specify the folder path checking whether it is exists or not. If it is existed the looping through each folder in a specified folder or drive. If file is older than 30 days then we are deleting that folder and all files in it. Here we are checking older than 30 days files. You can change this number according to your requirement. Just define required number to ‘iDays’. I have specified my folder as ‘C:\VBAF1\Test\’. Before running macro you can change this folder path.

'VBA Deleting All Files and Subfolders
Sub VBAF1_Delete_All_Files_and_Subfolders()
    
    'Variable declaration
    Dim sFolderPath As String
    Dim oFSO As FileSystemObject
    Dim iDays As Integer
    
     'Define Folder Path
    sFolderPath = "C:\VBAF1\Test\"
    
    'Specify 30 Days . You can change this value according to your requirement.
    iDays = 30 '
    
    'Check if slash is added
    If Right(sFolderPath, 1) = "\" Then
        'If added remove it from the specified path
        sFolderPath = Left(sFolderPath, Len(sFolderPath) - 1)
    End If
            
    'Create FSO Object
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    
    'Check Specified Folder exists or not
    If oFSO.FolderExists(sFolderPath) Then
        'Loop through each folder in a specified folder
        For Each oFld In oFSO.GetFolder(sFolderPath).SubFolders
        
            'Check each folder if it is older than 30 days or not
            If DateDiff("d", oFld.DateLastModified, Now) > iDays Then
                'Delete All Files
              oFSO.DeleteFile oFld & "\*.*", True
                            
              'Delete Subfolder
              oFSO.DeleteFolder oFld
            End If
        Next
          
     End If
    
End Sub

Instructions to Run VBA Macro Code or Procedure:

You can refer the following link for the step by step instructions.

Instructions to run VBA Macro Code

Other Useful Resources:

Click on the following links of the useful resources. These helps to learn and gain more knowledge.

VBA Tutorial VBA Functions List VBA Arrays in Excel VBA Tables and ListObjects

VBA Editor Keyboard Shortcut Keys List VBA Interview Questions & Answers Blog

1 thought on “VBA Delete Subfolders Older than X Days”

Leave a Comment