Learn about VBScript Outlook.Folder object, including folder operations, email management, and more. Understand how to use it effectively with practical examples.
last modified April 9, 2025
The Outlook.Folder object in VBScript represents a folder in the Microsoft Outlook hierarchy. It’s part of the Outlook Object Model for automation. Folders can contain mail items, contacts, calendar entries, or other folders. This object provides methods to access and manage folder contents.
Outlook.Folder enables programmatic interaction with Outlook data. It supports operations like accessing items, creating subfolders, and managing folder properties. This tutorial covers Outlook.Folder with practical examples to demonstrate its usage in automation scripts.
The Outlook.Folder object is obtained through the Outlook Application object hierarchy. It represents any folder in Outlook’s namespace, including default and custom folders. Key properties include Name, Items, and Folders collection.
Important methods include CopyHere, MoveTo, and Delete. The object supports events for monitoring folder changes. Understanding this object helps automate Outlook data management tasks effectively.
This example demonstrates accessing the default Inbox folder in Outlook. It shows how to navigate the Outlook object hierarchy to reach the Inbox. The script then displays basic information about the folder.
access_inbox.vbs
Set outlookApp = CreateObject(“Outlook.Application”) Set namespace = outlookApp.GetNamespace(“MAPI”) Set inbox = namespace.GetDefaultFolder(6) ’ 6 = olFolderInbox
WScript.Echo “Inbox Name: " & inbox.Name WScript.Echo “Item Count: " & inbox.Items.Count
Set inbox = Nothing Set namespace = Nothing Set outlookApp = Nothing
The script creates an Outlook Application object and gets the MAPI namespace. GetDefaultFolder(6) retrieves the Inbox folder. The folder’s name and item count are displayed. Always release objects when done to free resources.
This example shows how to enumerate all subfolders of a given Outlook folder. It demonstrates accessing the Folders collection property. Each subfolder’s name and item count are displayed.
list_subfolders.vbs
Set outlookApp = CreateObject(“Outlook.Application”) Set namespace = outlookApp.GetNamespace(“MAPI”) Set inbox = namespace.GetDefaultFolder(6) ’ Inbox
For Each subfolder In inbox.Folders WScript.Echo “Subfolder: " & subfolder.Name WScript.Echo " Items: " & subfolder.Items.Count Next
Set inbox = Nothing Set namespace = Nothing Set outlookApp = Nothing
The script accesses the Inbox folder’s Folders collection. It loops through each subfolder, displaying its name and item count. This technique works for any folder with subfolders in the Outlook hierarchy.
This example demonstrates creating a new subfolder within an existing Outlook folder. It shows the Folders.Add method in action. The script creates a “Processed” subfolder in the Inbox.
create_subfolder.vbs
Set outlookApp = CreateObject(“Outlook.Application”) Set namespace = outlookApp.GetNamespace(“MAPI”) Set inbox = namespace.GetDefaultFolder(6) ’ Inbox
Set newFolder = inbox.Folders.Add(“Processed”) WScript.Echo “Created folder: " & newFolder.Name
Set newFolder = Nothing Set inbox = Nothing Set namespace = Nothing Set outlookApp = Nothing
The script adds a new folder named “Processed” to the Inbox. The Add method returns the newly created Folder object. Error handling should be added for cases where the folder already exists.
This example shows how to move email items between folders using the MoveTo method. It demonstrates finding specific emails in the Inbox and moving them to another folder. The script moves unread emails to a “To Process” folder.
move_emails.vbs
Set outlookApp = CreateObject(“Outlook.Application”) Set namespace = outlookApp.GetNamespace(“MAPI”) Set inbox = namespace.GetDefaultFolder(6) ’ Inbox
’ Get or create target folder On Error Resume Next Set targetFolder = inbox.Folders(“To Process”) If targetFolder Is Nothing Then Set targetFolder = inbox.Folders.Add(“To Process”) End If On Error GoTo 0
’ Move unread emails For Each item In inbox.Items If item.UnRead Then item.Move targetFolder End If Next
WScript.Echo “Moved unread emails to: " & targetFolder.Name
Set targetFolder = Nothing Set inbox = Nothing Set namespace = Nothing Set outlookApp = Nothing
The script first ensures the target folder exists. It then iterates through all Inbox items, moving unread emails to the target folder. The Move method is used instead of MoveTo when working with individual items.
This example demonstrates processing all items in a folder. It shows how to access email properties and perform actions based on them. The script displays sender and subject for each email in the Inbox.
process_items.vbs
Set outlookApp = CreateObject(“Outlook.Application”) Set namespace = outlookApp.GetNamespace(“MAPI”) Set inbox = namespace.GetDefaultFolder(6) ’ Inbox
For Each item In inbox.Items If item.Class = 43 Then ’ olMail = 43 WScript.Echo “From: " & item.SenderName WScript.Echo “Subject: " & item.Subject WScript.Echo “Received: " & item.ReceivedTime WScript.Echo “—” End If Next
Set inbox = Nothing Set namespace = Nothing Set outlookApp = Nothing
The script checks each item’s class to ensure it’s a mail item (class 43). For each mail item, it displays the sender, subject, and received time. This pattern can be extended to process items based on various criteria.
Outlook.Folder Object Documentation
In this article, we have explored the Outlook.Folder object in VBScript, covering its usage and practical applications. From accessing folders to processing items and managing folder structure, these examples demonstrate powerful Outlook automation capabilities. With this knowledge, you can create robust scripts for Outlook data management.
My name is Jan Bodnar and I am a passionate programmer with many years of programming experience. I have been writing programming articles since 2007. So far, I have written over 1400 articles and 8 e-books. I have over eight years of experience in teaching programming.
List all VBScript tutorials.