我的问题与this thread和this one非常相似。我认为我的问题是将这两个问题结合起来。
我正在跑步:
通过阅读这两个问题以及来自Microsoft和其他地方的其他一些页面,我能够打开VB编辑器并粘贴到它中,这个简单的代码:
Sub SaveEmail(msg As Outlook.MailItem)
' save as text
msg.SaveAs "C:\Users\mel\mailsave\email.txt" & Format(Now, "YYYYMMDDHHMMSS"), _
olTXT
End Sub
我尝试进入运行菜单并选择运行“子/用户表单”项,但是下一个对话框询问要运行什么,并且不填充可用于运行的宏列表。点击“保存”图标但没有任何改变。
答案 0 :(得分:4)
使用该签名(Sub method (var As Outlook.MailItem)
)指定方法允许您在创建邮箱规则时使用该方法。据我了解你的问题,你已经超出了这一点。
问题1
代码的格式部分最多只能每秒保存一次唯一文件。您将当前日期和时间附加到文件。但是,您的主要问题不是时间戳,而是文件格式。您应该在文件扩展名之前应用时间戳,例如
msg.SaveAs "C:\Users\mel\mailsave\email" & Format(Now, "YYYYMMDDHHMMSS") & ".txt", olTXT
问题2
如果将宏添加到规则中,则会在匹配规则时运行该宏。可以通过创建一种抓取当前所选邮件的方法来测试宏,例如
Sub TestSaveEmail()
Call SaveEmail(ActiveExplorer.Selection(1))
End Sub
然后可以通过在方法中设置光标并按F5来运行该宏。
通过自定义功能区并添加宏按钮,还可以将宏添加到Outlook用户界面。有关自定义功能区的帮助,请参阅以下文章: