特定のメールをフォルダーに移動するルールを作成する

このトピックでは、ルール オブジェクト モデルを使用してルールを作成するVisual Basic for Applications (VBA) のコード サンプルを示します。 このコード サンプルでは、 RuleAction オブジェクトと RuleCondition オブジェクトを使用して、特定の送信者から特定のフォルダーにメッセージを移動するルールを指定します。メッセージに件名に特定の用語が含まれている場合を除きます。 コード サンプルでは、受信トレイの下に "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 オブジェクトの oMoveRuleAction を取得します。 oMoveRuleAction は、ルールの処理 (メッセージを対象フォルダーの "Dan" に移動する) を指定します。

  6. 同じ Rule オブジェクトを使い、 RuleConditions.Subject プロパティで TextRuleCondition オブジェクトの oExceptSubject を取得します。 oExceptSubject は例外条件を指定します。件名に "fun" または "chat" という用語が含まれている場合は、メッセージをフォルダー "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 のサポートおよびフィードバックを参照してください。