gpt4 book ai didi

vb.net - 在代码中进行自动化时可以抑制 Visio 的宏警告提示吗?

转载 作者:行者123 更新时间:2023-12-02 06:45:18 31 4
gpt4 key购买 nike

我正在通过 VB.NET 应用程序自动化 Visio 2003。我的代码如下所示(删除了无趣的内容):

Dim objApp As New Microsoft.Office.Interop.Visio.InvisibleApp
objApp.Settings.ShowFileOpenWarnings = False
Dim objDoc As Microsoft.Office.Interop.Visio.Document
objDoc = objApp.Documents.Open(VisioFilename)

我发现最后一行会导致 Visio 引发一个隐藏的 MessageBox,内容为:

Macros in this document are disabled because the security level is high, and the macros have not been digitally signed or verified as safe. To run the macros, you can either have them signed or change your security level.

由于这将在计算机上运行,​​因此我无法控制文件,因此这些选项都不适合我。我真的不在乎宏是否被禁用,我只是使用 Visio 将文件从其 native 格式转换为 SVG。我当然不想建议用户降低安全级别,我也不想为他们降低安全级别。

正如您从上面的代码中看到的,我关闭了文件打开警告,但这似乎不包括宏警告。由于我使用的是 Visio.InvisibleApp,结果警告不会向用户显示。运行 Visio 的可见实例不会有帮助,因为我正在创建批处理转换器,即使消息可见,也意味着用户必须为每个文件单击“确定”。这将使批量转换功能基本上毫无用处。

我看到 Visio 类具有 VBAEnabled 属性,但它是只读的。如果有一种方法可以在打开文件时关闭 VBA,则可能会解决问题。我已经查看了类的所有属性和“设置”属性,但找不到任何内容。我在 Google 上进行了大量搜索,但找不到任何可以解决此问题的内容。

有人知道在 Visio 中使用自动化时是否可以抑制该警告吗?如果我切换到 Visio 2007 可以吗?

最佳答案

有一个 OpenEx 方法,其工作方式与 Open 类似,但它接受标志。这些标志之一是 visOpenMacrosDisabled (&H80)。

其中还有一些其他方便的标志,例如 visOpenDontList (&H8),因此通过自动化打开的文件不会添加到最近的文件列表中。

关于vb.net - 在代码中进行自动化时可以抑制 Visio 的宏警告提示吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1040843/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com