Email to Torsten Weber
Feed Icon
.NET User Group Leipzig

Nach den Blogeinträgen

bin ich mehrfach gefragt worden, wie man Regeln in bestimmten Ordnern ausführen kann. Das heißt, es geht nicht um durch Microsoft vordefinierte Ordner, sondern beliebige, die von Endanwendern definiert werden. Es funktioniert so:

Sub RunAllRules()
    Dim outlookStore As Outlook.Store
    Dim allRules As Outlook.Rules
    Dim actualRule As Outlook.Rule
    Dim resultFolder As Folder
    
    Set outlookStore = Application.Session.DefaultStore
    Set allRules = outlookStore.GetRules
    Set resultFolder = GetFolderByName( _
        rootFolder:=OlDefaultFolders.olFolderInbox, folderName:="Test")
    
    For Each actualRule In allRules
        If actualRule.RuleType = olRuleReceive Then
            actualRule.Execute _
               ShowProgress:=False, _
               Folder:=Application.Session.GetFolderFromID(EntryIDFolder:=resultFolder.EntryID), _
               IncludeSubfolders:=False, _
               RuleExecuteOption:=OlRuleExecuteOption.olRuleExecuteAllMessages
        End If
    Next
             
    Set outlookStore = Nothing
    Set allRules = Nothing
    Set actualRule = Nothing
End Sub
Function GetFolderByName(rootFolder As OlDefaultFolders, folderName As String) As Folder
    Dim folders As folders
    Dim actualFolder As Folder
    Set folders = Application.Session.GetDefaultFolder(rootFolder).folders

    For Each actualFolder In folders
        If actualFolder.Name = folderName Then
            Set GetFolderByName = actualFolder
            Exit Function
        End If
    Next
End Function
Das Besondere liegt also darin, dass über die Funktion GetFolderByName die ID des jeweiligen Ordners ermittelt wird, in dem die Regeln ausgeführt werden sollen. Dazu muss bei:
 
Set resultFolder = GetFolderByName( _
    rootFolder:=OlDefaultFolders.olFolderInbox, folderName:="Test")

der Ordner angegeben werden unter dem der jeweilige Ordner liegt als auch sein Name.

In der nachfolgenden Abbildung wird dieses gut ersichtlich. Hier befindet sich der Ordner Test unterhalb von Posteingang (olFolderInbox) und heißt eben "Test". Mit dem obigen Anwendungscode werden dann alle definierten Regeln in diesem Ordner ausgeführt. Non scholae, set vitae discimus.

Outlook 2007 – Regeln in einem bestimmten Ordner ausführen

All comments require the approval of the site owner before being displayed.
Name
E-mail
(will show your gravatar icon)
Home page

Comment (Some html is allowed: a@href@title, b, blockquote@cite, em, i, strike, strong, sub, sup, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Live Comment Preview

Boldness, risk‐taking and a little bit of craziness – lateral thinker Torsten Weber
Boldness, risk‐taking and a little bit of craziness – lateral thinker Torsten Weber

.NET User Group Leipzig

Categories

Calendar

<February 2012>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

Archive

My subscribed blogs

show all
show less
Blogs of good friends (as OPML)
More Blogs (as OPML)