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.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de