| | Awarded by Microsoft since 2005: |  |
| | VBOffice Info | | Visitors | 1389471 | | Impressions | 5089491 |
| |
|
| |
| Author: Michael Bauer | Homepage | | Date: 17.10.2008 | Accessed: 16945 | | | | Description
Categories qualify very well for triggering certain actions.
The first example moves an email to a certain subfolder of the inbox as soon as you assign a certain category. If more categories are assigned, they'll be ignored. Just customize the two variables in the 'Mail_PropertyChange' procedure.
The second example moves the email to a subfolder of the inbox that matches the name of the category.
(Copy the code to the modul 'ThisOutlookSession'. The procedure 'Mail_PropertyChange' must be copied only once, either sample #1, or sample #2.) |
Private WithEvents Explorer As Outlook.Explorer
Private WithEvents Mail As Outlook.MailItem
Private Sub Application_Startup()
Dim Ns As Outlook.NameSpace
Set Ns = Application.GetNamespace("MAPI")
Set Explorer = Application.ActiveExplorer
End Sub
Private Sub Explorer_SelectionChange()
Dim obj As Object
Dim Sel As Outlook.Selection
Set Mail = Nothing
Set Sel = Explorer.Selection
If Sel.Count > 0 Then
Set obj = Sel(1)
If TypeOf obj Is Outlook.MailItem Then
Set Mail = obj
End If
End If
End Sub
Private Sub Mail_PropertyChange(ByVal Name As String)
Dim Ns As Outlook.NameSpace
Dim SubfolderName As String
Dim Inbox As Outlook.MAPIFolder
Dim Subfolder As Outlook.MAPIFolder
Dim i&
Dim Cats As String
Dim arrCats() As String
Dim FindCategory As String
FindCategory = " (Actionlist)"
SubfolderName = "test"
Set Ns = Application.GetNamespace("MAPI")
Set Inbox = Ns.GetDefaultFolder(olFolderInbox)
Set Subfolder = Inbox.Folders(SubfolderName)
If Subfolder.EntryID = Mail.Parent.EntryID Then
Exit Sub
End If
FindCategory = LCase$(FindCategory)
If Name = "Categories" Then
Cats = Mail.Categories
If Len(Cats) = 0 Then Exit Sub
Cats = Replace(Cats, ",", ";")
arrCats = Split(Cats, ";")
For i = 0 To UBound(arrCats)
Cats = LCase$(arrCats(i))
If Cats = FindCategory Then
Mail.Move Subfolder
Set Mail = Nothing
Exit For
End If
Next
End If
End Sub
Private Sub Mail_PropertyChange(ByVal Name As String)
Dim Ns As Outlook.NameSpace
Dim Inbox As Outlook.MAPIFolder
Dim Subfolder As Outlook.MAPIFolder
Dim SubfolderName As String
If Name = "Categories" Then
Set Ns = Application.GetNamespace("MAPI")
Set Inbox = Ns.GetDefaultFolder(olFolderInbox)
SubfolderName = Mail.Categories
If Len(SubfolderName) = 0 Then Exit Sub
Set Subfolder = Inbox.Folders(SubfolderName)
If Subfolder.EntryID <> Mail.Parent.EntryID Then
Mail.Move Subfolder
Set Mail = Nothing
End If
End If
End Sub
|
| | |
| | |  | ReplyAll alerts you before unintentionally replying all, or if you are a confidential BCC recipient of the ... [more] |
| | |  | Access the master category list in the blink of an eye, share your categories in a network, get a reminder service, and ... [more] |
| | |  | SAM automatically sets the sender, signature, and folder for sent items, for instance based on the recipient ... [more] |
| | |  | OLKeeper reliably prevents users from closing their Outlook window and thus possibly missing reminders or ... [more] |
| |
|