【问题标题】:How to disable macros in office word 2003?如何在office word 2003 中禁用宏?
【发布时间】:2010-11-03 21:57:52
【问题描述】:

我正在尝试使用 Adob​​e distiller 将 Word 报告转换为 PDF。其中一些 word 文件中包含宏,当打开文档时会显示一个弹出窗口,这会停止自动化过程。

我们尝试通过

禁用宏

wordApplication.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable;

但现在应用程序不再触发 Document Open 事件,在该事件中实现了转换代码。在这种情况下,编写代码是为了确保仅在 word 加载文件后进行转换。

还有其他方法可以禁用宏吗?或任何其他方法,以便我可以禁用宏并确保加载文件以启动转换过程。

【问题讨论】:

    标签: c# ms-word macros office-2003


    【解决方案1】:

    如果您禁用宏,则您打开的文档中的任何代码都不会运行,包括 Document Open 事件中的代码。毕竟这是一个“宏观”。无法在单个文档中运行某些宏,而不能运行其他宏。

    为什么在文档打开事件中发生转换过程?为什么不在打开文档的代码中执行呢?

    【讨论】:

    • 我尝试在打开文档的代码中执行此操作;但它甚至在文档完全加载之前就被触发了。
    • 什么被解雇了?什么没有满载?打开文档不是异步的。在您的代码打开它之后,它可以对它做任何事情。具体什么是不能做的?
    【解决方案2】:

    如果我正确理解了这个问题,你可以做一个try ...catch...finally 声明。

    你只需将打开的代码放在try中,如果文件打开,则将变量设置为true,然后在Finally语句中放入if/then语句,这样如果文件被打开,它将运行转换,如果文档未打开,您可以返回文档未转换的消息并说明原因。在 OP 的情况下,您可能仍然需要禁用宏。

    我知道这是一篇很老的帖子,但如果其他人看到这篇帖子寻求帮助,可能会给他们一些想法。

    【讨论】:

      猜你喜欢
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 2015-10-17
      • 2010-12-07
      • 1970-01-01
      • 2010-12-26
      • 2010-11-22
      • 1970-01-01
      相关资源
      最近更新 更多