共用方式為


建立規則以將特定電子郵件移至資料夾

本主題說明 Visual Basic for Applications (VBA) 中的程式碼範例,該範例會使用 Rules 物件模型來建立規則。 程式碼範例會使用 RuleActionRuleCondition 物件來將規則指定為:除非訊息包含主旨中的特定詞彙,否則就將訊息從特定寄件者移至特定的資料夾。 請注意,此程式碼範例假設,在在收件匣下已經有一個名為「Dan」資料夾。

下面會說明用來建立此規則的步驟:

  1. 指定目的檔案夾 oMoveTarget ,以根據條件和例外狀況條件來移動特定訊息。 此目標資料夾是 [收件匣] 底下名為 "Dan" 的子資料夾,而且會假設此資料夾已經存在。

  2. 使用 Store.GetRules 來取得目前工作階段中所有規則的集合。

  3. 搭配上一個步驟傳回的 Rules 集合,使用 Rules.Create 來加入新的規則。 此新規則會指定收到郵件時執行的某些動作,所以它的類型為 olRuleReceive

  4. 搭配上一個步驟傳回的 Rule 物件,使用 RuleConditions.From 屬性來取得 ToOrFromRuleCondition 物件 ( oFromCondition)。 oFromCondition 會為此規則指定條件:當郵件來自 Dan Wilson 時。

  5. 搭配相同的 Rule 物件,使用 RuleActions.MoveToFolder 屬性來取得 MoveOrCopyRuleAction 物件 oMoveRuleActionoMoveRuleAction 會為此規則指定動作:將郵件移至目標資料夾 "Dan"。

  6. 搭配相同的 Rule 物件,使用 RuleConditions.Subject 屬性來取得 TextRuleCondition 物件 ( oExceptSubject)。 oExceptSubject 指定例外狀況條件:如果主旨包含「有趣」或「聊天」一詞,則請勿套用規則將訊息移至資料夾 「Dan」。

  7. 使用 Rules.Save 同時儲存新的規則以及目前儲存區的其餘規則。

Sub CreateRule() 
    Dim colRules As Outlook.Rules 
    Dim oRule As Outlook.Rule 
    Dim colRuleActions As Outlook.RuleActions 
    Dim oMoveRuleAction As Outlook.MoveOrCopyRuleAction 
    Dim oFromCondition As Outlook.ToOrFromRuleCondition 
    Dim oExceptSubject As Outlook.TextRuleCondition 
    Dim oInbox As Outlook.Folder 
    Dim oMoveTarget As Outlook.Folder 
 
    'Specify target folder for rule move action 
    Set oInbox = Application.Session.GetDefaultFolder(olFolderInbox) 
    'Assume that target folder already exists 
    Set oMoveTarget = oInbox.Folders("Dan") 
     
    'Get Rules from Session.DefaultStore object 
    Set colRules = Application.Session.DefaultStore.GetRules() 
     
    'Create the rule by adding a Receive Rule to Rules collection 
    Set oRule = colRules.Create("Dan's rule", olRuleReceive) 
 
    'Specify the condition in a ToOrFromRuleCondition object 
    'Condition is if the message is from "Dan Wilson" 
    Set oFromCondition = oRule.Conditions.From 
    With oFromCondition 
        .Enabled = True 
        .Recipients.Add ("Dan Wilson") 
        .Recipients.ResolveAll 
    End With 
 
    'Specify the action in a MoveOrCopyRuleAction object 
    'Action is to move the message to the target folder 
    Set oMoveRuleAction = oRule.Actions.MoveToFolder 
    With oMoveRuleAction 
        .Enabled = True 
        .Folder = oMoveTarget 
    End With 
 
    'Specify the exception condition for the subject in a TextRuleCondition object 
    'Exception condition is if the subject contains "fun" or "chat" 
    Set oExceptSubject = _ 
        oRule.Exceptions.Subject 
    With oExceptSubject 
        .Enabled = True 
        .Text = Array("fun", "chat") 
    End With 
 
    'Update the server and display progress dialog 
    colRules.Save 
End Sub 

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應