And*_*ndy 5 ms-word com-interop office-interop
正如标题所示,我有一个 .Net 应用程序,它使用互操作在 Word 中打开文档。我已经设定
app.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable
在打开文档之前。根据文档,这“禁用以编程方式打开的所有文件中的所有宏,而不显示任何安全警报”
但是,当我尝试打开一个特定文档时,屏幕上出现一个对话框,显示“无法加载对象,因为该对象在本机上不可用”。这是一份客户文档,但我相信它包含一个宏,其中引用了我尚未安装的 COM 对象。
我是不是在做蠢事?有没有办法在打开Word文档时真正禁用宏?
尝试:
WordBasic.DisableAutoMacros 1
奇怪的是,这依赖于回到 VBA 之前的时代,但似乎仍然是确保不触发自动宏的最可靠方法(在任何文档中 - 您可能希望使用参数“0”将其返回) 。
我最近有一个项目,我必须处理 6,000 个 Word 模板(是的,模板,不是文档),其中许多模板都有宏等奇怪的东西。使用这种技术,我能够处理除 6 个之外的所有模板。(我从来没有弄清楚这 6 个问题出在哪里)。
编辑:有关如何从 C# 调用它的讨论,请参阅:http ://www.dotnet247.com/247reference/msgs/56/281785.aspx