使用Outlook中的宏保存附件到电子邮件

时间:2017-01-31 12:13:33

标签: vba outlook attachment outlook-vba

我想创建一个运行以下脚本的规则:

Public Sub SaveToDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim dateFormat

dateFormat = Format(Now, "yyyy-mm-dd")

saveFolder = "c:\temp\"

objAtt.SaveAsFile saveFolder & "\" & dateFormat & ".xls"

Set objAtt = Nothing

End Sub

这应该保存到c:\ temp文件夹的附件,但是它不起作用,因为objAtt值没什么。由于某些原因,该行:

Dim objAtt As Outlook.Attachment

没有将附件分配给obAtt变量,原因我无法弄清楚。这里的附件是.csv文件。

我在Windows 10上使用Outlook 2016。我很乐意就此为何提出任何建议。

1 个答案:

答案 0 :(得分:4)

你必须设置对象,因为你只需要创建它,而不是填充它。

所以它不知道它应该与MailItem有任何关系。

此外,还有一系列的Attachement,请参阅:

Public Sub SaveToDisk(ItM As Outlook.MailItem)
Dim oAttS As Outlook.Attachments
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim dateFormat

dateFormat = Format(Now, "yyyy-mm-dd")
saveFolder = "c:\temp\"

Set oAttS = ItM.Attachments

For Each objAtt In oAttS
    objAtt.SaveAsFile saveFolder & "\" & dateFormat & "_" & objAtt.FileName 
Next objAtt

Set oAttS = Nothing
Set objAtt = Nothing

End Sub