指定规则条件

Rules 对象模型支持最常用的规则操作和条件。 每个 Rule 对象都有一个 Actions 属性,该属性表示该规则的规则操作,以及一个 Conditions 属性和一个 Exceptions 属性,表示该规则的条件。 本主题说明 Rules 对象模型如何支持规则条件。

规则的规则条件由 RuleConditions 集合对象表示。 RuleConditions 对象具有与规则中每个常用规则条件对应的属性。 例如,如果规则指定了两个条件(邮件很重要,主题包含某些字词),则规则的 RuleConditions 集合对象的 ImportanceSubject 属性将返回相应的规则条件对象,这些对象 (RuleCondition.EnabledTrue) 。

规则中未指定的条件将不会在相应的 RuleCondition 对象中启用, (RuleCondition.EnabledFalse) 。 规则条件对象由 RuleCondition 对象或派生自 RuleCondition 对象的自定义对象表示。 在上一个示例中, RuleConditions.Importance 属性将返回一个 ImportanceRuleCondition 对象, RuleConditions.Subject 属性将返回一个 TextRuleCondition 对象,这两个对象都派生自 RuleCondition 对象。 RuleCondition 对象及其派生对象具有 ConditionType 属性,该属性将指示规则条件的类型,例如,ImportanceRuleCondition.ConditionType 将指示值 olConditionImportance而 TextRuleCondition.ConditionType 将指示 olConditionSubject

请注意,Rules 对象模型部分等效于规则和通知向导。 也就是说,在您可以使用该向导创建规则来指定在该向导中看到的操作和条件的同时,您可以通过编程方式创建规则来只使用其中的某些而非全部操作和条件。 以特定敏感度级别的邮件为例,Rules 对象模型对在该向导中创建的规则支持该条件,但是对于对象模型创建的规则则不支持该条件。 使用向导创建将敏感度指定为条件的规则。

使用 Rules 对象模型,可以在 Rules 集合中枚举此类规则 - 对于 Rules 集合中的每个规则,枚举其 RuleConditions 集合,并查找启用的规则条件以实现敏感度。 在代码中,这意味着对于 Rules 集合中的每个规则,使用从 1 到 RuleConditions.Count 的 Index 枚举 RuleConditions.Item (Index) ,并查找 RuleCondition.ConditionType 等于 olConditionSensitivity 的启用条件。 您还可以在规则中启用或禁用此类规则条件。 但是,不能以编程方式创建指定 olConditionSensitivity 条件的规则。

下表列出了规则和警报向导支持的所有规则条件,以及使用 Rules 对象模型创建规则时是否支持每个规则条件。 规则对象模型创建的规则中不支持的规则条件,仅对由规则和警报向导创建的现有规则进行编程枚举和启用或禁用。 该表还说明了规则条件是否适用于规则类型为 olRuleReceive 和/或 olRuleSend 的规则。

注意 不能启用或禁用 olConditionOtherMachine 类型的规则条件。 此类规则条件指示规则只能在特定计算机上运行,但当前的计算机不是该计算机。 如果规则是在一台计算机上创建的,并且启用了规则条件 olConditionLocalMachineOnly,则表示该规则只能在该计算机上运行,此时就会发生这种情况。 在某些情况下,如果启用另一个规则条件(如, olConditionAccount),则会自动设置 olConditionLocalMachine。 当您在另一台计算机上运行该规则时,该规则将显示 olConditionOtherMachine 条件处于启用状态。

Condition olRuleConditionType 中的常量 以编程方式创建新规则时是否受支持? 是否适用于 olRuleReceive 规则? 是否适用于 olRuleSend 规则?
Account 是在 AccountRuleCondition.Account 中指定的帐户 olConditionAccount
为邮件分配了类别。 olConditionAnyCategory
正文包含 TextRuleCondition.Text 中指定的词。 olConditionBody
正文或主题中包含指定的单词 TextRuleCondition.Text。 olConditionBodyOrSubject
为邮件分配了 CategoryRuleCondition.Categories 中指定的一个或多个类别 olConditionCategory
邮件的“抄送”框中包含我的姓名。 olConditionCc
在 x 和 y 之间收到邮件,其中 x 和 y 是整数值。 olConditionDateRange
将邮件标记为需执行指定操作。 olConditionFlaggedForAction
邮件使用在 FormNameRuleCondition.FormName 中指定的窗体。 olConditionFormName
发件人位于在 ToOrFromRuleCondition.Recipients 中指定的收件人列表中。 olConditionFrom
邮件从任何 RSS 订阅生成。 olConditionFromAnyRssFeed
邮件从指定的 RSS 订阅生成。 olConditionFromRssFeed
邮件包含附件。 olConditionHasAttachment
用指定的重要性级别对邮件进行了标记。 olConditionImportance
规则只能在此计算机上运行。 olConditionLocalMachineOnly
邮件是会议邀请或更新。 olConditionMeetingInviteOrUpdate
邮件标头包含在 TextRuleCondition.Text 中指定的单词。 olConditionMessageHeader
邮件的 "收件人" 框中没有我的姓名。 olConditionNotTo
仅将邮件发送给我。 olConditionOnlyToMe
邮件是外出时自动发送的邮件。 olConditionOOF
规则只能在特定计算机上运行,但不是当前计算机。 olConditionOtherMachine
文档属性恰好是或者包含或不包含指定的属性。 olConditionProperty
收件人地址包含在 TextRuleCondition.Text 中指定的单词。 olConditionRecipientAddress
发件人地址包含在 TextRuleCondition.Text 中指定的词语。 olConditionSenderAddress
发件人位于在 AddressRuleCondition.Address 中指定的地址列表。 olConditionSenderInAddressBook
使用指定的敏感度级别对邮件进行了标记。 olConditionSensitivity
发送到出现在 ToOrFromRuleCondition.Recipients 中指定的收件人列表中的收件人(“收件人”“抄送”)。 olConditionSentTo
邮件大小(以 KB 为单位)介于 x 和 y 之间,其中 x 和 y 为数据值。 例如,“10;50”将大小条件设置为 10 到 50KB。 olConditionSizeRange
主题包含在 TextRuleCondition.Text 中指定的单词。 olConditionSubject
我的姓名出现在“收件人”框中。 olConditionTo
邮件的“收件人”“抄送”框中包含我的姓名。 olConditionToOrCc
不识别的规则条件。 olConditionUnknown

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。