2013-07-17 51 views
1

我有一個小VBA宏使用下面的代碼片斷爲什麼Outlook無法保存特定類型的附件?

For Each objAtt In objSourceItem.Attachments 
    strFile = strPath & objAtt.FileName 
    objAtt.SaveAsFile strFile 
Next 

這適用於所有類型的附件,除了附件的ChemDraw保存在Outlook中的附件。我得到一個錯誤,說「Outlook不能對這種類型的附件執行此操作」 我不確定這是否特定於ChemDraw,但我可能它與文件擴展名和Outlook不識別文件格式有關。無論如何,這http://www.cambridgesoft.com/services/documentation/sdk/chemdraw/cdx/General.htm有關於ChemDraw類型文件的信息。任何幫助表示讚賞。謝謝!

回答

2

如果這是一個RTF郵件中的嵌入式OLE對象,Outlook將無法從附件(這是一個OLE存儲塊 - IStorage)中提取實際文件數據。

+0

感謝您的回覆。是的,它是一個嵌入式OLE對象,但Outlook可以保存其他類型的嵌入對象。其實我對「保存」附件不是很感興趣,但更有趣的是將它複製到另一封電子郵件中。我知道,對於常規附件,無法簡單地將附件從一個電子郵件複製到另一個電子郵件,因爲您需要先將其保存並上載,但我應該能夠複製和粘貼嵌入的OLE對象?如果是這樣,一個條件語句的VBA代碼將檢查附件是否爲嵌入式OLE對象?謝謝! – Jeanno

+1

檢查Attachment.Type屬性(olEmbeddedItem = 5) –

+0

僅供參考,Redemption(http://www.dimastr.com/redemption)可以從嵌入的OLE附件中提取文件數據 - 請參閱RDOAttachment.SaveAsFile(http:// www.dimastr.com/redemption/RDOAttachment.htm) –

相關問題