Document.MacrosEnabled property (Visio)

Specifies whether you can execute macros and process events in a document's Microsoft Visual Basic for Applications (VBA) project. Read-only.

Syntax

expression.MacrosEnabled

expression A variable that represents a Document object.

Return value

Boolean

Remarks

If your document contains macros that are necessary to your solution's execution, you can use the MacrosEnabled property to verify whether macros are enabled in the document. If they are disabled, you can display a message indicating that your solution may not work as expected because document settings prohibit macros from being executed.

The value of the MacrosEnabled property depends on a combination of the macro setting and the project's signature status (whether it is digitally signed by a trusted source or in a trusted location). The following table describes these combinations.

Macro setting Digitally signed In a trusted location MacrosEnabled property
Disable all macros without notification N/A No False
Disable all macros without notification N/A Yes True
Disable all macros with user notification N/A No False
Disable all macros with user notification N/A Yes True
Disable all macros except digitally signed macros No No False
Disable all macros except digitally signed macros Yes N/A True
Disable all macros except digitally signed macros N/A Yes True
Enable all macros N/A N/A True

By default, macros are disabled in a Visio document not from a trusted publisher, or that is not digitally signed, or that is not in a trusted location.

However, you can change default settings in the Macro Settings category of the Visio Trust Center (click the File tab, click Options, click Trust Center, and then click Trust Center Settings). If Disable all macros except digitally signed macros is selected, macros in Visio documents not in a trusted location are enabled only if the documents are digitally signed. If you select Disable all macros without notification or Disable all macros with notification, macros in documents not in a trusted location are disabled. If you select Enable all macros, all macros are always enabled, but this option presents a security risk and is not recommended.

Trusted sources are listed in the Trusted Publishers category in the Trust Center, and trusted locations are listed in the Trusted Locations category.

To open a document in a disabled state (macros are not enabled), you can use the OpenEx method of the Document object. For example:

Documents.OpenEx(fileName , visOpenMacrosDisabled)

Example

The following example shows how to open a document from an add-on and use the MacrosEnabled property to determine whether macros are enabled. If macros are disabled, a message box appears warning the user of limited functionality. Before running this example, supply a valid document file name for the variable 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

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.