Table of contents
Collapse the table of content
Expand the table of content

InvisibleApp.SetCustomToolbars Method (Visio)

office 365 dev account|Last Updated: 6/12/2017
1 Contributor

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


expression . SetCustomToolbars( ToolbarsObject )

expression A variable that represents an InvisibleApp object.


NameRequired/OptionalData TypeDescription
ToolbarsObjectRequired[IVUIOBJECT]An expression that returns a UIObject object that represents the new custom toolbars.

Return Value



Note Starting with Visio, the Microsoft Office Fluent user interface (UI) replaces the previous system of layered menus, toolbars, and task panes. VBA objects and members that you used to customize the user interface in previous versions of Visio are still available in Visio, but they function differently.

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


This Microsoft Visual Basic for Applications (VBA) macro shows how to use the SetCustomToolbars method to replace the built-in toolbar set with the custom set. It retrieves a copy of the built-in Visio toolbars, adds a toolbar and a toolbar button, sets the button icon, and then replaces the toolbar set.

Before running this macro, replace path\filename in the code with the full path to and filename of an icon file (.ico) on your computer.

Public Sub SetCustomToolbarItems_Example() 

 Dim vsoUIObject As Visio.UIObject 
 Dim vsoToolbarSet As Visio.ToolbarSet 
 Dim vsoToolbar As Visio.Toolbar 
 Dim vsoToolbarItems As Visio.ToolbarItems 
 Dim vsoToolbarItem As Visio.ToolbarItem 

 'Get the UIObject object for the copy of the built-in toolbars. 
 Set vsoUIObject = Visio.Application.BuiltInToolbars(0) 

 'Get the drawing window toolbar sets. 
 'NOTE: Use ItemAtID to get the toolbar set. 
 'Using vsoUIObject.ToolbarSets(visUIObjSetDrawing) will not work. 
 Set vsoToolbarSet = vsoUIObject.ToolbarSets.ItemAtID(visUIObjSetDrawing) 

 'Create a new toolbar 
 Set vsoToolbar = vsoToolbarSet.Toolbars.Add 

 With vsoToolbar 
 .Caption = "test" 
 .Position = visBarFloating 
 .Left = 300 
 .Top = 200 

 .Protection = visBarNoHorizontalDock 
 .Visible = True 
 .Enabled = True 
 End With 

 'Get the ToolbarItems collection. 
 Set vsoToolbarItems = vsoToolbar.ToolbarItems 

 'Add a new button in the first position. 
 Set vsoToolbarItem = vsoToolbarItems.AddAt(0) 

 'Set properties for the new toolbar button. 
 vsoToolbarItem.CntrlType = visCtrlTypeBUTTON 
 vsoToolbarItem.CmdNum = visCmdPanZoom 

 'Set the toolbar button icon. 
 vsoToolbarItem.IconFileName "path\filename " 

 'Use the new custom UI. 
 ThisDocument.SetCustomToolbars vsoUIObject 

End Sub
© 2018 Microsoft