Outlook 2010 custom VBA script to move incoming mail message to a specific folder
15,821
Solution 1
Your last but one line needs to be
Set GetFolder = ObjFolder
Solution 2
In your GetFolder
function, you also hard-coded the folder name.
Line reads:
Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Folders("ETS")
Should read:
Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Folders(FolderName)
Author by
noxee
Updated on June 23, 2022Comments
-
noxee about 2 years
I'm trying to create a custom rule for Outlook 2010 that inspect the subject of the email and if it makes a regular expression it's moved into a specific folder.
However when I run the script I get the following error when I try and get an Outlook.Folder object for the folder I want to move the message to:
Run-time error '91':
Object variable or With block variable not setBelow is the VBA script that I am using to check the email subject and move the message to the specified folder if it matches.
Sub MoveToETS(Item As Outlook.MailItem) Dim Subject As String Subject = Item.Subject Dim FolderToMoveTo As Outlook.Folder Set FolderToMoveTo = GetFolder("ETS") If (CheckSubject(Subject, "^[Project|Bug] (\d+?) - \[[UPDATE|NEW|RESOLVED]\]")) Then Item.Move (FolderToMoveTo) End If End Sub Function CheckSubject(Subject As String, PatternToCheck As String) Dim ObjRegExp As RegExp Dim ObjMatch As Match Set ObjRegExp = New RegExp ObjRegExp.Pattern = PatternToCheck If (ObjRegExp.Text(Subject) = True) Then CheckSubject = True End If End Function Function GetFolder(ByVal FolderName As String) As Outlook.Folder Dim ObjFolder As Outlook.Folder Set ObjFolder = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Folders("ETS") GetFolder = ObjFolder End Function