2017-07-06 3 views
0

インスタントテキスト検索の結果、すべての電子メールをハードディスクドライブに保存しようとしています。下のコードは検索を実行することができますが、各メールを選択してHDに保存する間に、selectallitems行にエラーが表示されます。コードはExcel vbaにあります。Outlookのインスタント検索結果の電子メールをハードディスクドライブのフォルダに保存する方法

Dim OlApp As Outlook.Application 
Set OlApp = CreateObject("Outlook.Application") 


Dim fldrpath As String 
fldrpath = "\\mydata\EMAILS\ 

Check subfolder for messages and exit of none found 
txtsearch = "[email protected], received:4/1/2017..4/30/2017" 
OlApp.ActiveExplorer.Search txtsearch, olSearchScopeAllFolders 

Dim myitem As Outlook.MailItem 
Dim objitem As Object 
Set myitem = OlApp.ActiveExplorer.SelectAllItems 
Set objitem = myitem 
objitem.SaveAs fldrpath & "test" & ".msg", olMSG 

メールを保存するための他の代替コードもありがとうございます。 ありがとうございます!

+0

完全なコードですか? – 0m3r

答えて

-1

myItemは単一のアイテムですが、SelectAllItemsはアイテムのコレクションを表します。

この未テストコードのようなものをお試しください。

option explicit 

sub txtsearch_save() 

Dim fldrpath As String 
fldrpath = "\\mydata\EMAILS\" 

'Check subfolder for messages and exit if none found 
txtsearch = "[email protected], received:4/1/2017..4/30/2017" 
ActiveExplorer.Search txtsearch, olSearchScopeAllFolders 

Dim objitem As Object 

For each objitem in ActiveExplorer.SelectAllItems 

    ' to save only mailitems 
    if objitem.class = olMail then 
     objitem.SaveAs fldrpath & "test" & ".msg", olMSG 
    end if 

Next 

end sub 
+0

このNitonに感謝します。私はこのコードを実行しようとしましたが、selectallitemsで "Expected function or variable" – sapana

関連する問題