How to Quickly Copy Folder Structure from One Outlook PST File to Another via VBA

If you want to copy the folder structure from one Outlook PST file to another, you can use the method introduced in this article, which will teach you how to use VBA to get it in one go.

Perhaps, in order to better manage your emails, you have created several custom folders in your main Outlook file. Thus when creating a new Outlook PST file, you may want to apply the same folder structure. Actually, in my previous article – “2 Steps to Keep the Current Folder Hierarchy in a New Outlook File”, you can learn a traditional method, which is using “Archive” feature to achieve it. Nevertheless, actually, it is still a bit tedious. Compared with it, using VBA codes to get it will be much quicker. Therefore, in the followings, we’ll tell you the elaborate steps and codes.

Quickly Copy Folder Structure from One Outlook PST File to Another

Copy Folder Structure from One Outlook PST File to Another

  1. At the very outset, start your Outlook program.
  2. Then in the Outlook window, press “Alt + F11” key buttons.
  3. Next you will enter the Outlook VBA editor window.
  4. Subsequently, copy and paste the following VBA codes into a new module.
Public objNewPSTFolder As Outlook.Folder
Sub CopyFolderStructure()
    Dim objFolders As Outlook.Folders
    Dim objFolder As Outlook.Folder
    'Get the folders of the source Outlook PST file
    Set objFolders = Outlook.Application.Session.Folders("Personal").Folders
    'Create the new pst file in your desired local folder and name
    Outlook.Application.Session.AddStore "E:\New PST File.pst"
    Set objNewPSTFolder = Session.Folders.GetLast()
    For Each objFolder In objFolders
        CreateFolder objFolder
    MsgBox "Completed!", vbOKOnly + vbInformation, "Copy Folder Structure"
End Sub
Sub CreateFolder(objFolder As Outlook.Folder)
    Dim objSubFolder As Outlook.Folder
    'Only copy the mail folder
    If (objFolder.DefaultItemType = olMailItem) Then
       'New Outlook PST file auto includes the "Deleted Items" folder, so skip it
       'Skip the useless mail folders - "Conversation Action Settings" and "Quick Step Settings"
       If (objFolder.Name <> "Deleted Items") And (objFolder.Name <> "Conversation Action Settings") And (objFolder.Name <> "Quick Step Settings") Then
          'Create the new folder
          objNewPSTFolder.Folders.Add objFolder.Name
          Set objNewPSTFolder = objNewPSTFolder.Folders.Item(objFolder.Name)
          For Each objSubFolder In objFolder.Folders
              CreateFolder objSubFolder
          Set objNewPSTFolder = objNewPSTFolder.parent
       End If
    End If

End Sub

VBA Codes - Copy Folder Structure from One Outlook PST File to Another

  1. After that, change your macro security level to low.
  2. Later back to VBA editor window and press “F5” key button to run the macro.
  3. Finally, after the macro finishes working, you will get a message, prompting “Completed!”.Message prompting Completed
  4. At this point, you can go to the mail navigation pane. You’ll see a new Outlook Data File which is in the same folder structure as the source PST file, like the image below:Copy Folder Structure

Cope with Dispiriting PST Troubles

As Outlook PST is error prone, many of you must have ever encountered various issues in Outlook. Faced with them, you can firstly use Outlook inbox repair tool to have a try. If it fails, you can then apply a more potent third party tool, such as DataNumen Outlook Repair, which can fix Outlook PST errors like a breeze.

Author Introduction:

Shirley Zhang is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including SQL Server fix and outlook repair software products. For more information visit

Leave a Reply

Your email address will not be published. Required fields are marked *