我从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说:

本文档中的
宏被禁用,因为安全级别为高,并且宏没有被数字签名或验证为安全。要运行宏,你可以让他们签名或更改您的安全级别。

由于这将是电脑,我不使用文件,我不控制所有方法都对我的作品的控制上运行。我真的不关心的宏被禁用,我只是使用Visio转换文件从它到SVG原生格式。我当然不希望建议他们降低安全级别的用户,我也不会要降低它他们。

正如你可以从上面我的代码看,我关闭文件打开的警告,但似乎并没有包含宏警告。由于我使用Visio.InvisibleApp原来的警告不会显示给用户。运行Visio的可见实例将没有帮助,因为我创建一个批处理转换器,即使消息是可见这意味着用户必须单击确定为每个文件。这将使批量转换功能基本上是无用的。

我看到的Visio类有一个VBAEnabled属性,但它是只读的。如果有办法打开文件时我可以关掉VBA它可能会解决这个问题。我已经看了全部通过性和通过对类设置属性,不能发现任何东西。我已经做了一堆谷歌搜索,并不能找到任何解决了这个问题。

任何人都知道,如果可以用自动化的Visio时能够抑制该警告?我能做到这一点,如果我切换到Visio 2007年?

有帮助吗?

解决方案

有一个OpenEx方法作品就像打开但它接受标志。其中一个标志是visOpenMacrosDisabled(H80)。

有也有类似visOpenDontList(H8)一些其他方便的标志,从而打开的文件通过自动化将不被添加到最近的文件列表。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top