Excel vba附件搜索

时间:2017-05-09 15:55:34

标签: excel vba outlook attachment

我正在研究在outlook邮件附件中找到字符串的宏。 我有工作模块搜索给定邮箱和文件夹上的主题,正文和附件名称。

问题是我的代码不想在附件功能中模仿Outlook搜索。

代码搜索单词' office'在邮件主题字段和显示找到邮件:

Sub t22()

Dim myolApp As Outlook.Application
Dim objNS As Outlook.Namespace
Dim objFolder As Outlook.MAPIFolder
Dim ProcessName As String
Dim EmailName As String

Set myolApp = CreateObject("Outlook.Application")
Set objNS = myolApp.GetNamespace("MAPI")
Set objFolder = objNS.Folders("my@mailbox.com")
Set TargetInbox = objFolder.Folders("Inbox")

Dim oItms As Outlook.Items
Dim oItm As Outlook.MailItem
Set oItms = TargetInbox.Items
Dim sFilter As String
Dim EmailTime As String

sFilter = "@SQL=""http://schemas.microsoft.com/mapi/proptag/0x0037001f"" = 'office'"
Set oItm = oItms.Find(sFilter)
'If Not IsEmpty(oltm) Then
    oItm.Display
    Debug.Print oItm.Body
'End If
End Sub

据我所知,#Filter'应该引用目标搜索字段,但当我将其值用于附件(0x0EA5001E)时,它会失败。

我也在尝试使用AdvancedSearch方法但结果相同 - 除了附件之外的其他所有工作。

1 个答案:

答案 0 :(得分:0)

Outlook对象模型不提供用于搜索附件中的字符串的任何内容。您需要查找附加了文件的所有项目,然后迭代所有项目。在迭代时,您可以打开附件并在里面搜索字符串。您可以使用以下搜索条件查找包含附件的所有项目:

 query ="@SQL=" & chr(34) & "urn:schemas:httpmail:hasattachment" & chr(34) & "=1"

您可能还会发现以下文章有用: