Propriedade MenuItem.IsHierarchical (Visio)

Indica se um item de menu é hierárquico; ou seja, se ele contém um menu suspenso que contém mais itens, que por sua vez podem ser acessados iterando por meio da coleção MenuItems do item de menu. Somente leitura.

Sintaxe

expression. IsHierarchical

Expressão Uma variável que representa um objeto MenuItem .

Valor de retorno

Inteiro

Comentários

Observação

A partir do Visio 2010, a interface do usuário do Microsoft Office Fluent (interface do usuário) substituiu o sistema anterior de menus em camadas, barras de ferramentas e painéis de tarefas. Objetos VBA e membros que você usou para personalizar a interface do usuário em versões anteriores do Visio ainda estão disponíveis no Visio, mas funcionam de forma diferente.

O valor da propriedade CmdNum de um objeto MenuItem que representa um menu hierárquico deve ser (0). Isso corresponde à constante do Microsoft Visio visCmdHierarchical.

Exemplo

Esta macro do Microsoft Visual Basic for Applications (VBA) exibe como usar a propriedade IsHierarchical para excluir um menu hierárquico.

Para restaurar os menus internos do Visio após executar essa macro, chame o método ThisDocument.ClearCustomMenus.

 
Public Sub IsHierarchical_Example() 
 
 Dim vsoUIObject As Visio.UIObject 
 Dim vsoMenuSet As Visio.MenuSet 
 Dim vsoMenu As Visio.Menu 
 Dim vsoMenuItems As Visio.MenuItems 
 Dim vsoMenuItem As Visio.MenuItem 
 Dim vsoHierarchicalMenuItems As Visio.MenuItems 
 Dim vsoHierarchicalMenuItem As Visio.MenuItem 
 
 'True if variable represents a hierarchical menu item. 
 Dim blsHierarchicalState As Boolean 
 
 Dim intCounterOuter As Integer 
 Dim intCounterInner As Integer 
 
 'Get the UI Object object for the copy of the built-in menus. 
 Set vsoUIObject = Visio.Application.BuiltInMenus 
 
 'Set vsoMenuSet to the drawing menu set. 
 Set vsoMenuSet = vsoUIObject.MenuSets.ItemAtID(visUIObjSetDrawing) 
 
 'Get the Tools menu. Because you got the built-in 
 'menus, you know that you can find the Tools menu by its 
 'position. If you had retrieved a custom UI, you would have 
 'to loop through the menus checking the caption to find 
 'the Tools menu. When you use a custom menu, there is no 
 'guarantee that you will find a Tools menu, because it 
 'could have been deleted. 
 Set vsoMenu = vsoMenuSet.Menus(5) 
 
 'Get the MenuItems collection for the Tools menu. 
 Set vsoMenuItems = vsoMenu.MenuItems 
 
 'Locate the Macros menu item. Because you got the 
 'built-in menus, you know you will find it. If you had 
 'started from a custom menu, you would need to handle 
 'the case of not finding the menu item. 
 For intCounterOuter = 0 To vsoMenuItems.Count - 1 
 
 'Retrieve the current menu item from the collection. 
 Set vsoMenuItem = vsoMenuItems(intCounterOuter) 
 
 'Check CmdNum to see if it is Macro. 
 If vsoMenuItem.CmdNum = visCmdHierarchical And _ 
 vsoMenuItem.Caption = "&Macros" Then 
 
 'The value of blsHierarchicalState is True. 
 blsHierarchicalState = vsoMenuItem.IsHierarchical 
 
 'Get the MenuItems collection for the 
 'hierarchical menu. 
 Set vsoHierarchicalMenuItems = vsoMenuItem.MenuItems 
 
 'Locate the Visual Basic Editor menu item. 
 'As with the Macros menu item, you know you will 
 'find the Visual Basic Editor menu item 
 'because you started with a copy of 
 'the built-in menus. 
 For intCounterInner = 0 To vsoHierarchicalMenuItems.Count - 1 
 
 'Retrieve menu item from collection. 
 Set vsoHierarchicalMenuItem = vsoHierarchicalMenuItems(intCounterInner) 
 
 'Check CmdNum. 
 If vsoHierarchicalMenuItem.CmdNum = visCmdToolsRunVBE Then 
 
 'Delete the Visual Basic Editor menu item. 
 vsoHierarchicalMenuItem.Delete 
 
 'Exit the inner For loop. 
 Exit For 
 
 End If 
 
 Next intCounterInner 
 
 'Exit the outer For loop. 
 Exit For 
 
 End If 
 
 Next intCounterOuter 
 
 'Tell Microsoft Visio to use the custom user interface 'while the document is active. 
 ThisDocument.SetCustomMenus vsoUIObject 
 
End Sub

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.