Outlook Customized Rules

I have a series of outlook rules in Outlook 2013 that funnel emails to appropriate folders upon receipt.

I manage a number of small projects (15-20) at a time and each one is active for 1 to 2 months.

I create a folder for each project with a 5 digit job number in the folder name.

Each email has the 5 digit job number in the subject.

Right now I create a new rule for each project which is a bit takes more effort than I would like to manage.

I would like to create a "generic" rule that searches the email for a job number that matches one of the folders and if a match is found moves a copy to that folder.

Alternately, I keep a running job list in a spreadsheet that has the job# and description (which matches the folder name) and if possible, the rule could search through the spreadsheet, find the job# in one column and find the folder name in the next column and then move the email to the right folder.

I'm not asking for the full code - some pointers on how to get started would be appreciated.

Who is Participating?
you can create a rule that applies to all message and instead of the default action you can run a vba script. EE has an article by BlueDevilFan introducing that:


Here's some snippets that might help - from http://www.outlookcode.com/ which is a great resource for starting Outlook VBA (as I am)

'You can manipulate the sub folders using something like this:-
' this process recursively loops through sub folders, to compare names to subjects for example

Sub ProcessFolder(StartFolder As Outlook.MAPIFolder)
    Dim objFolder As Outlook.MAPIFolder
    Dim objItem as Object
    On Error Resume Next
    ' do something specific with this folder
    Debug.Print StartFolder.FolderPath, StartFolder.Items.Count
    ' process all the subfolders of this folder
    For Each objFolder In StartFolder.Folders
        Call ProcessFolder(objFolder)
    ' process all the items in this folder
    For Each objItem In StartFolder.Items
        Call ProcessItem(objItem)
    Set objFolder = Nothing
End Sub

' and this creates a sub folder based on a subject line and moves the item
Sub Process_One_MailAndAddFolder()

' ***
' *** Creates a destination folder for single selected mail item
' *** The folder name is based on the subject of the email
' ***

Dim OutlApp As Object
Dim OutlNs As Object
Dim OutlInBoxFolder As Object
Dim OutlItem As Object
Dim strMailheader As String

Set OutlApp = Outlook.Application
Set OutlNs = OutlApp.GetNamespace("MAPI")

' Replace Clients. Add as many .Folders("...") to the end as necessary
Set OutlInBoxFolder = OutlNs.GetDefaultFolder(olFolderInbox).Folders("Clients")

' Select an item, do not open
Set OutlItem = OutlApp.ActiveExplorer.Selection.Item(1)

strMailheader = "Quote - " & OutlItem.Subject

If ActiveExplorer.CurrentFolder = strMailheader Then
    MsgBox "You have selected an item with a name used on a previously created destination folder."
    GoTo exitRoutine
End If

On Error Resume Next
OutlInBoxFolder.Folders.Add strMailheader
If Err = 440 Then
    MsgBox "A folder named " & vbCr & vbCr & strMailheader & vbCr & vbCr & "already exists." & _
        vbCr & vbCr & "Currently selected mail has not been moved."
    GoTo exitRoutine
End If
On Error GoTo 0

OutlItem.Move OutlInBoxFolder.Folders(strMailheader)

Set ActiveExplorer.CurrentFolder = OutlInBoxFolder.Folders(strMailheader)


Set OutlItem = Nothing
Set OutlInBoxFolder = Nothing
Set OutlNs = Nothing
Set OutlApp = Nothing

End Sub 

Open in new window

rogerdjrAuthor Commented:
thanks for a great start - I'll update as I make progress
rogerdjrAuthor Commented:
Thanks for a great start - I'll keep you posted as I make progress
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.