2014-12-19 55 views
4

我在使用腳本自動將電子郵件正文導出到文本文件時遇到問題。 我已經管理了一個腳本,可以將文本保存到宏中的文件中,但這不適用於我需要的規則。Outlook規則將電子郵件保存爲文本

我當前的代碼如下:

Sub SaveAsTXT() 
Dim myItem As Outlook.Inspector 
Dim objItem As Object 
Dim myFolder As Folder 



Set myItem = Application.ActiveInspector 
If Not TypeName(myItem) = "Nothing" Then 

     Set myNamespace = Application.GetNamespace("MAPI") 
     Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox) 

Set objItem = myItem.CurrentItem 
strname = objItem.Subject 
strdate = Format(objItem.ReceivedTime, " yyyy mm dd") 
objItem.SaveAs "c:\users\philip\documents\" & strname & strdate & ".txt", olTXT 
    End If 

End Sub 

道歉,如果它看起來有點亂,我已經編輯它無數次試圖得到它的工作。

這時候,我在打開郵件並運行它作爲一個宏,將正確運行的代碼,但它可能無法正常工作時,作爲一項規則 我試圖修正至Sub SaveAsTXT(Item as Outlook.Mailitem)運行,但是這也並不似乎工作

所以基本上問題是如何確保代碼將選擇電子郵件(它將始終被授權爲「Rotas」不帶引號)當它作爲一個規則運行?

信息:使用Office 2010和我不是一個很好的編碼器開始。

回答

5

其實我自己把它弄清楚了。

我不認爲item as Outlook.Mailitem元素實際上是規則選定的東西。所以我申請item作爲對象,而不是objItem

在下面找到成功的(和清理)代碼:

Sub SaveAsTXT(myMail As Outlook.MailItem) 

Dim objItem As Object 
Dim myFolder As Folder 


If Not TypeName(myitem) = "Nothing" Then 

     If myMail.Subject = "Rotas" Then 

strname = myMail.Subject 
strdate = Format(myMail.ReceivedTime, " yyyy mm dd") 
myMail.SaveAs "c:\users\philip\documents\" & strname & ".txt", olTXT 
    End If 


End If 

End Sub 
+0

幹得好整理出來你的自我+1。你也可以接受你自己的答案,或等待另一種方法來獲得你想要的。看[接受答案](http://stackoverflow.com/help/someone-answers)。 – L42

+0

感謝您發佈此信息。它爲我工作以及一些小的修改。 – Igor

相關問題