Document.MacrosEnabled 属性 (Visio)

指定是否可以在文档的 Microsoft Visual Basic for Applications (VBA) 项目中执行宏和处理事件。 此为只读属性。

语法

表达式MacrosEnabled

表达 一个代表 Document 对象的变量。

返回值

布尔值

备注

如果您的文档包含的宏对于解决方案的执行来说是必需的,则可以使用 MacrosEnabled 属性来验证文档中是否启用了宏。 如果禁用了宏,则可以显示一个消息,指示您的解决方案可能无法按预期的方式工作,因为文档设置禁止执行宏。

MacrosEnabled 属性的值取决于宏设置和项目的签名状态(项目是否由受信任来源进行了数字签名或在受信任位置中进行了数字签名)的组合。 下表说明了这些组合。

宏设置 经过数字签名 在受信任位置 MacrosEnabled 属性
禁用所有宏,并且不通知 不适用 错误
禁用所有宏,并且不通知 不适用 True
禁用所有宏,并通知用户 不适用 错误
禁用所有宏,并通知用户 不适用 True
禁用无数字签署的所有宏 错误
禁用无数字签署的所有宏 不适用 True
禁用无数字签署的所有宏 不适用 True
启用所有宏 不适用 不适用 True

默认情况下,禁用并非来自受信任发布者、未经数字签名或不在受信任位置的 Visio 文档中的宏。

但是,可以在 Visio 信任中心的“宏设置”类别中更改默认设置 (单击“文件”选项卡,单击“选项”,再单击“信任中心”,然后单击“信任中心设置”) 。 如果选择了“禁用无数字签署的所有宏”,则会禁用不在受信任位置的 Visio 文档中的宏,除非这些文档经过了数字签名。 如果选择了“禁用所有宏,并且不通知”“禁用所有宏,并发出通知”,则会禁用不在受信任位置的文档中的宏。 如果选择了“启用所有宏”,则会始终启用所有宏,但该选项会带来安全风险,建议不要使用。

受信任的源列在信任中心的“受信任的发布者”类别中,受信任位置列在“受信任位置”类别中。

要打开处于禁用状态(未启用宏)的文档,可以使用 Document 对象的 OpenEx 方法。 例如:

Documents.OpenEx(fileName , visOpenMacrosDisabled)

示例

以下示例演示如何从加载项打开文档并使用 MacrosEnabled 属性确定是否启用了宏。 如果禁用了宏,则显示一个消息框,警告用户功能受限。 运行该示例之前,请为变量 filename 提供有效的文档文件名。

 
Public Sub MacrosEnabled_Example() 
 
    Dim vsoDocument As Visio.Document 
    Dim blsStatus As Boolean 
 
    Set vsoDocument = Documents.Open("filename ") 
    blsStatus = vsoDocument.MacrosEnabled 
 
    If Not blsStatus Then 
 
         MsgBox "Macro execution has been disabled for this document." & _  
            "Functionality may be limited." 
 
    End if 
 
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。