代码从Outlook下载附件,将其保存在桌面上并打开它

这是Outlook中的代码自动设置Outlook中的规则以保存带有date戳记的附件(Excel):

Public Sub saveAttachtoDisk(itm As Outlook.MailItem) Dim objAtt As Outlook.Attachment Dim saveFolder As String Dim dateFormat dateFormat = Format(Now, "yyyy-mm-dd H-mm") saveFolder = "c:\Users\abc1\Desktop\" For Each objAtt In itm.Attachments objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName Set objAtt = Nothing Next End Sub 

下一步,我想要的是打开附件一旦保存。 那可能吗?

这个怎么样?

 Public Sub saveAttachtoDisk(itm As Outlook.MailItem) Dim objAtt As Outlook.Attachment Dim saveFolder As String Dim dateFormat dateFormat = Format(Now, "yyyy-mm-dd H-mm") saveFolder = "c:\Users\abc1\Desktop\" For Each objAtt In itm.Attachments objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName Set objAtt = Nothing Next Dim Shex As Object Set Shex = CreateObject("Shell.Application") tgtfile = "objatt" Shex.Open (tgtfile) 

结束小组

对的,这是可能的。 如果您确切知道需要打开Excel文件,则可以使用Excel对象模型来完成工作。 请参阅如何从Visual Basic中自动化Microsoft Excel以获取更多信息。 Workbooks类的Open方法打开一个工作簿。

尝试这个:

 Public Sub saveAttachtoDisk(itm As Outlook.MailItem) Dim objAtt As Outlook.Attachment Dim saveFolder As String Dim dateFormat, FilePath As String dateFormat = Format(Now, "yyyy-mm-dd H-mm") saveFolder = "c:\Users\abc1\Desktop" '<<EDIT removed trailing \ For Each objAtt In itm.Attachments FilePath = saveFolder & "\" & dateFormat & _ " " & objAtt.DisplayName objAtt.SaveAsFile FilePath runit FilePath Next End Sub Sub runit(FilePath as String) Dim Shex As Object Set Shex = CreateObject("Shell.Application") Shex.Open (FilePath) End Sub 'Edit: I used this to test the code, since I'm not running ' it from a rule Sub Tester() Dim Msg As MailItem Set Msg = Application.ActiveInspector.CurrentItem saveAttachtoDisk Msg End Sub