Outlook VBA教程:Restrict方法

Items集合应用筛选条件,返回一个新的集合,其中包含原始项目中所有匹配筛选条件的项目。该方法可代替使用Find方法或FindNext方法遍历集合内的特定项目。如果集合中只有少量项目,Find 或 FindNext方法要比筛选快。如果集合中项目较多,尤其是要在大型集合中查找少量项目时,Restrict方法明显更快。

注意  如果将用户自定义的字段作为 Find 或 Restrict 语句的一部分,则文件夹中必须存在该用户自定义字段,否则代码会产生错误,指出字段未知。可以通过显示“字段选择器”,然后单击“新建”,将字段添加到文件夹。

expression.Restrict(Filter)

expression   必选。该表达式返回 Items对象。

Filter  必选,String 类型。要应用的筛选字符串表达式。有关详细信息,请参阅Find方法。

说明

该方法不能与下列属性一起使用,否则将产生错误:

Body

Categories

Children

Class

Companies

CompanyLastFirstNoSpace

CompanyLastFirstSpaceOnly

ContactNames

Contacts

ConversationIndex

DLName

Email1EntryID

Email2EntryID

Email3EntryID

EntryID

HTMLBody

IsOnlineMeeting

LastFirstAndSuffix

LastFirstNoSpace

LastFirstNoSpaceCompany

LastFirstSpaceOnly

LastFirstSpaceOnlyCompany

MemberCount

NetMeetingAlias

NetMeetingAutoStart

NetMeetingOrganizerAlias

NetMeetingServer

NetMeetingType

RecurrenceState

ReplyRecipients

ReceivedByEntryID

RecevedOnBehalfOfEntryID

ResponseState

Saved

Sent

Submitted

VotingOptions

VBA示例

本 Visual Basic for Applications 示例使用 Restrict方法获取所有与 Project X 有关的“收件箱”项目并将它们移到“Project X”文件夹中。


Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNameSpace("MAPI")
Set myFolder =  _
    myNameSpace.GetDefaultFolder(olFolderInbox)
Set myItems = myFolder.Items
Set myRestrictItems = myItems.Restrict _     ("[Categories] = 'Project X'")
For Each myItem In myRestrictItems
    myItem.Move myFolder.Folders("Project X")
Next

如果使用 VBScript,您不必创建Application对象,而且也不能使用命名常量。本示例说明如何使用 VBScript 执行相同任务。


Set myNameSpace = Application.GetNameSpace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(6)
Set myItems = myFolder.Items
Set myRestrictItems = myItems.Restrict _     ("[Categories] = 'Project X'")
For Each myItem In myRestrictItems
    myItem.Move myFolder.Folders("Project X")
Next

本 Visual Basic for Applications 示例使用 Restrict方法,根据项目的LastModificationTime属性将筛选条件应用于联系人项目。


Public Sub ContactDateCheck()
   Set myOlApp = CreateObject("Outlook.Application")
   Set myNameSpace = myOlApp.GetNamespace("MAPI")
   Set myContacts = myNameSpace.GetDefaultFolder(olFolderContacts).Items
   Set myItems = myContacts.Restrict("[LastModificationTime] > '05/15/97'")
   For Each myItem In myItems
       MsgBox myItem.FullName & ": " & MyItem.LastModificationTime
   Next
End Sub

以下 Visual Basic for Applications 示例除演示在筛选条件中使用变量外与上例相同。


Public Sub ContactDateCheck()
   Set myOlApp = CreateObject("Outlook.Application")
   Set myNameSpace = myOlApp.GetNamespace("MAPI")
   Set myContacts = myNameSpace.GetDefaultFolder(olFolderContacts).Items
   DateStart = #6/11/97#
   DateToCheck$ = "[LastModificationTime] >= """ & DateStart & """"
   Set myRestrictItems = myContacts.Restrict(DateToCheck$)
   For Each myItem In myRestrictItems
      MsgBox myItem.FullName & ": " & MyItem.LastModificationTime
   Next
End Sub

上页:Outlook VBA教程:Respond方法 下页:Outlook VBA教程:Save方法

Outlook VBA教程:Restrict方法:相关链接

Outlook VBA教程:Save方法 Outlook VBA教程:SaveAs方法
Outlook VBA教程:SaveAsFile方法 Outlook VBA教程:Send方法
Outlook VBA教程:SetColumns方法 Outlook VBA教程:SetCurrentFormPage方法
Outlook VBA教程:SetIcon方法 Outlook VBA教程:ShowCategoriesDialog方法
Outlook VBA教程:ShowFormPage方法 Outlook VBA教程:ShowPane方法
Outlook VBA教程:SkipRecurrence方法 Outlook VBA教程:Snooze方法
Outlook VBA教程:Sort方法 Outlook VBA教程:Start方法
Outlook VBA教程:StartTimer方法 Outlook VBA教程:StatusReport方法
Outlook VBA教程:Stop方法 Outlook VBA教程:StopTimer方法
Outlook VBA教程:Update方法 Outlook VBA教程:Action对象
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号