自动保存Outlook邮件的附件

作者:
系列:办公自动化

查看该系列所有文章

在工作中定期或不定期会收到一些数据文件,然后要将它们的附件保存到自己的电脑上,下面演示如何让 Outlook 自动做这件事情。

首先,下面的 SaveAttach 函数可以保存附件中的 docx 文档到 D 盘根目录下。用 ALT+F11 打开 VBA 编辑器,插入下述代码:

Public Sub SaveAttach(Item As Outlook.MailItem)
    SaveAttachment Item, "D:\", "*.docx"
    ' MsgBox "附件已保存"
End Sub

' 保存附件
' path为保存路径,condition为附件名匹配条件
Private Sub SaveAttachment(ByVal Item As Object, path$, Optional condition$ = "*")
    Dim olAtt As Attachment
    Dim i As Integer

    If Item.Attachments.Count > 0 Then
        For i = 1 To Item.Attachments.Count
            Set olAtt = Item.Attachments(i)
            ' save the attachment
            If olAtt.FileName Like condition Then
                olAtt.SaveAsFile path & olAtt.FileName
            End If
        Next
    End If
    Set olAtt = Nothing
End Sub

如何实现自动保存呢?利用 Office Outlook 2007 的规则,它可以设定对满足一定条件的邮件自动运行脚本,然后选择脚本为 SaveAttach 函数即可。这样便能实现收到某些邮件时自动保存符合条件的附件到相应文件目录。

补充:如果上面方法没效果,可以尝试修改下面的设置(由 wfustc 在留言中指出)

在 Outlook 的信任中心勾选上「允许使用脚本」。

对于 Outlook 2007 ,在「工具->信任中心->电子邮件安全性->文件夹中的脚本",勾选上"允许在公用文件夹中使用脚本"和"允许在共享文件夹中使用脚本"

对于 Outlook 2010 ,相应选项位于「文件->选项->信任中心->电子邮件安全性"里。

Q. E. D.

系列: 办公自动化 »
时间管理中有重要的一条, 保持你的收件箱整洁、干净 。Gmail 一个重要的创新就是 Archive (存档),选中邮件后点下「archive」按钮或者按一下快捷键 y ,邮件就被移出收件箱,但又跟删除邮件不一样,这些邮件还可以继续被搜索。这里讲最近写的如何在 Outlook 里实现这个功能。
Excel 有一个很有用的功能是直接导入外部数据库或者使用外部数据源建立数据透视表和数据透视图。但比较可惜的是,这个数据源的查询语句是静态的,它无法根据日期自动修改(比如在应用中,我们希望每天获取的外部数据都是当天最新的数据),下面两个函数是修改外部数据源的 VBA 代码,调用它们就可以建立动态的数据源。
编程 » Excel, VBA
效果图:
后一篇:
碎碎念 » 谣言
不知道最初来源于哪里,这个数字我最早是从 李笑来 那里看到的,我看完之后随便搜了几个数字,觉得结果也大同小异,心想为何笑来突然关注这个数字。后来才发现网上被传得到处都是,包括 我的老同学也参与了 ,最后发现其根源是下面这条「新闻」