2

我使用的是 Outlook 2007。我没有使用 Windows 编程或 VBA 的经验,因为我的所有背景都是 Unix 系统。我试图让 Outlook 将每封传入的电子邮件保存为文本文件,然后运行一个 python 脚本来解析这个文本文件。

我发现这个问题似乎提供了一些 VBA 代码来完成第一项任务,但我不确定如何使用它。我打开 Visual Basic 编辑器,但不知道如何从那里开始。我尝试将文本保存为模块,但是当我尝试在 Outlook 规则中添加“运行脚本”时,没有可用的脚本。我究竟做错了什么?

编辑:澄清。

4

1 回答 1

3

我假设您在某种程度上熟悉编码,即使不在 Windows 上也是如此。您可能想在 Outlook VBA 上做一些一般性的背景阅读;这方面的一些资源可能是Microsoft 文章、 OutlookCode 中的这篇文章等等 - 那里有大量资源,包括演练和示例。

解决您的特定问题:查看此 Microsoft 知识库文章,其中描述了如何从规则触发脚本。

打开 VBA 编辑器后开始使用的关键是双击左侧的模块,例如ThisOutlookSession(在“Microsoft Outlook 对象”下)。这应该会给你一个编辑器,你可以将代码粘贴到其中。请记住,(根据上面的 MS 页面)您的过程必须接受 MailItem 对象,该对象将是规则所拥有的项目,因此您提供的链接示例的前几行将从:

Sub SaveEmail()
    Dim msg As Outlook.MailItem
    ' assume an email is selected
    Set msg = ActiveExplorer.Selection.Item(1)
    ' save as text
    [...]

...至:

Sub SaveEmail(msg As Outlook.MailItem)
    ' save as text
    [...]

本质上,您将收到一个 MailItem,而不必创建它并将其连接到 Outlook 中的选定项目。

为了实现对文件“运行脚本”的第二个任务,我假设您希望您的 VBA 在文件保存后对其进行更改?这在 VBA 中非常简单,您会找到很多示例。这个答案中有一个非常简单的大纲。

根据评论进行编辑:要启动外部工具,Shell如果不需要等待它完成,您可以使用命令,或者您可以使用浮动的许多 Shell-and-wait 实现之一,例如这个流行的一种。或者,您可以使用此答案WScript中的方法。

请注意,您需要确保将 Outlook 设置为允许运行宏,并且您可能需要对代码进行签名

于 2013-07-17T15:22:53.373 回答