Outlook VBA CreateObject 在 Application_Startup() 期间失败

Outlook VBA CreateObject fails during Application_Startup()

我在 Outlook 中编写了一个打开 Excel 文件的宏,然后 运行 在 Excel 电子表格中创建了另一个宏。 Excel 宏依次将一些图表保存为 PDF 文件,并打开 Outlook 将它们作为附件通过电子邮件发送。

当我 运行 这个带有 Outlook 的宏已经打开时,它工作正常。但是,如果我指定宏在启动时在 Application_Startup 事件中执行,我会在 Excel 宏中收到一个错误,指出 ActiveX 无法创建所需的对象。它出现在这段代码的第一行:

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

我将两个变量都调暗为对象。很抱歉新手问题,但我搜索了几个小时仍无法找到解释。

为什么只在宏 运行 启动时出现?这是否与 Excel 或 Outlook 在宏尝试 运行 时未完全加载有关?

我要尝试的第一件事是通过 运行 Outlook 从命令行使用 /RegServer 开关重新注册服务器组件。

其次,我会使用 dcomcnfg windows 实用程序检查 Microsoft Outlook 组件的 Launch/Activation 设置。 (右键单击开始,运行 > dcomcnfg,展开组件服务,展开我的电脑,展开 DCOM 配置,在列表中找到 Microsoft Outlook,右键单击 > 属性,安全选项卡。

这是一个 link Microsoft 支持页面,可能与您的问题有关...

You receive run-time error 429 when you automate Office applications

如果您能提供错误编号和 Office 版本,以及您的计算机是否属于 AD 域,可能更容易找到问题的根源!

不久前我遇到过类似的问题

你最好从 excel 端开始整个过程​​,而不是从 outlook 打开 excel。

因此打开 excel,将图表保存为 pdf,然后从 excel 宏打开 outlook 以发送电子邮件。不涉及 outlook 宏。