2017-05-09 48 views
0

Outlookの添付ファイル内で文字列を検索するマクロに取り組んでいます。 私は与えられたメールボックスとフォルダの件名、本文、添付ファイルの名前を検索して作業しています。Excel vba添付ファイルの検索

問題は、私のコードが添付ファイル機能内でOutlook検索をエミュレートしたくないということです。

メール件名フィールドとディスプレイ内の単語「オフィス」の

コード検索はメールが見つかりました:私の知る限り理解し

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("[email protected]") 
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 

は「sFilter」検索フィールドをターゲットに参照する必要がありますが、私はのためにその値を使用する場合添付ファイル(0x0EA5001E)が失敗します。

私もAdvancedSearchメソッドを試していましたが、同じ結果で、添付以外のすべての作業を行っていました。

+0

あなたがする必要があります添付ファイルを開いて内部を検索する – 0m3r

答えて

0

Outlookオブジェクトモデルは添付ファイル内の文字列を検索するためのものを提供しません。ファイルが添付されているすべてのアイテムを見つけて、すべてのアイテムを反復処理する必要があります。繰り返しながら、添付ファイルを開いて内部の文字列を検索することができます。あなたは、添付ファイルを持つすべての項目を検索するには、次の検索基準を使用することができます。

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

また、次の記事が参考に見つけること:

関連する問題