Document.SetCustomMenus Method

Visio Automation Reference

Replaces the current built-in or custom menus of an application or document.

Version Information
 Version Added:  Visio 4.0

Syntax

expression.SetCustomMenus(MenusObject)

expression   A variable that represents a Document object.

Parameters

Name Required/Optional Data Type Description
MenusObject Required [IVUIOBJECT] An expression that returns a UIObject object that represents the new custom menus.

Return Value
Nothing

Remarks

If the UIObject object was created in a separate process by using the CreateObject procedure instead of getting the appropriate property of an Application or Document object, the SetCustomMenus method returns an error.

Example

This Microsoft Visual Basic for Applications (VBA) macro shows how to add a menu and menu item to the drawing window menu set, and then replace the built-in menu set with the custom set.

To restore the Microsoft Office Visio built-in menus after you run this macro, call the ThisDocument.ClearCustomMenus method.

Visual Basic for Applications
  
Public Sub SetCustomMenus_Example() 
Dim vsoUIObject As Visio.UIObject 
Dim vsoMenuSets As Visio.MenuSets 
Dim vsoMenuSet As Visio.MenuSet   
Dim vsoMenus As Visio.Menus 
Dim vsoMenu As Visio.Menu 
Dim vsoMenuItems As Visio.MenuItems 
Dim vsoMenuItem As Visio.MenuItem 

'Get a UI object that represents the Microsoft Office Visio built-in menus. 
Set vsoUIObject = Visio.Application.BuiltInMenus 

'Get the MenuSets collection. 
Set vsoMenuSets = vsoUIObject.MenuSets 

'Get the drawing window menu set. 
Set vsoMenuSet  = vsoMenuSets.ItemAtID(visUIObjSetDrawing) 

'Get the Menus collection. 
Set vsoMenus = vsoMenuSet.Menus 

'Add a Demo menu before the Window menu. 
Set vsoMenu = vsoMenus.AddAt(7) 
vsoMenu.Caption = "Demo" 

'Get the MenuItems collection. 
Set vsoMenuItems = vsoMenu.MenuItems 

'Add a menu item to the new Demo menu. 
Set vsoMenuItem = vsoMenuItems.Add 

'Set the properties for the new menu item. 
vsoMenuItem.Caption = "&Hello" 
vsoMenuItem.AddOnName = "MsgBox ""Hello""" 

'Tell Visio to use the new UI when the document is active. 
ThisDocument.SetCustomMenus vsoUIObject 

End Sub

See Also