我想将一个特殊类别应用于一系列Outlook电子邮件。
我有一个VBA脚本,要求用户输入一个字符串,然后将其设置为电子邮件的类别。我通过将所有要更新的电子邮件移动到临时文件夹来运行此操作,然后对该文件夹中的所有邮件运行Outlook规则。
Public Sub PromptForCat(Email As Outlook.MailItem)
Category = InputBox("Please enter category to add :")
Email.Categories = Email.Categories & "," & Category
Email.Save
End Sub
但是,这会提示我输入文件夹中的每条消息 - 有没有办法只提示我一次,但是将结果应用到文件夹中的所有消息?
答案 0 :(得分:0)
如果您需要为选定的文件夹运行一次代码,则需要遍历文件夹中的所有项目。 Items
类的Folder
属性将Items
集合对象作为指定文件夹中的Outlook项集合返回:
Sub ContactDateCheck()
Dim myNamespace As Outlook.NameSpace
Dim myContacts As Outlook.Items
Dim myItem As Object
Set myNamespace = Application.GetNamespace("MAPI")
Set myContacts = myNamespace.GetDefaultFolder(olFolderContacts).Items
For Each myItem In myContacts
If (myItem.Class = olContact) Then
MsgBox myItem.FullName &; ": " &; myItem.LastModificationTime
End If
Next
End Sub
要在Outlook中获取所选项目,您需要使用Explorer类的Selection
属性:
Sub GetSelectedItems()
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim MsgTxt As String
Dim x As Integer
MsgTxt = "You have selected items from: "
Set myOlExp = Application.ActiveExplorer
Set myOlSel = myOlExp.Selection
For x = 1 To myOlSel.Count
MsgTxt = MsgTxt & myOlSel.Item(x).SenderName & ";"
Next x
MsgBox MsgTxt
End Sub