Como personalizar menus e barras de menu no Excel

Traduções deste artigo Traduções deste artigo
ID do artigo: 830502 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve como personalizar menus e barras de menus no Microsoft Excel 2000 e posterior. Este artigo contém instruções detalhadas e exemplos de códigos para gerenciar e personalizar programaticamente barras de menu, menus, comandos, submenus e menus de atalho no Microsoft Excel.

INTRODUÇÃO

Para realizar muitas das tarefas comuns associadas à personalização de barras de menu e menus no Microsoft Excel 2000, no Microsoft Excel 2002 e no Microsoft Office Excel 2003, use a caixa de diálogo Personalizar. Para realizar tarefas mais avançadas ou para adequar barras de menu e menus para um programa personalizado, aconselhamos criar códigos do Microsoft Visual Basic for Applications (VBA).

Para obter mais informações sobre como usar a caixa de diálogo Personalizar, clique em Ajuda do Microsoft Excel no menu Ajuda, digite barra de menu personalizar no Assistente do Office ou no Assistente de respostas e clique em Pesquisar para visualizar o tópico.

Este artigo pode ajudá-lo a aprender técnicas paa gravar código VBA para personalização de barras de menu, menus itens de menu, submenus e menus de atalho.

Mais Informações

A Microsoft fornece exemplos de programação apenas por questões ilustrativas, sem garantias expressas ou implícitas. Isto inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação a um determinado propósito. Este artigo presume que você conheça a linguagem de programação demonstrada e também as ferramentas usadas para criar e depurar procedimentos. Os engenheiros de suporte da Microsoft podem ajudá-lo, fornecendo a explicação da funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para fornecer funcionalidades adicionais ou construir procedimentos específicos para atender às suas necessidades.

Exemplos neste artigo

Os exemplos neste artigo usam código VBA no Excel 2000, no Excel 2002 e no Excel 2003 para personalizar menus. Para usar as macros de exemplo, execute estas etapas:
  1. Inicie o Excel.
  2. No menu Ferramentas, aponte para Macro e clique em Editor do Visual Basic.
  3. No menu Inserir, clique em Módulo.
  4. Digite um dos exemplos de macro deste artigo ou use uma operação copiar e colar para copiar os exemplos de macro para uma planilha de módulo.
  5. No menu Executar, clique em Executar Sub/UserForm.
  6. Se a caixa de diálogo Macros aparecer, clique no nome da macro e em Executar.

Barras de comando

No Microsoft Office, as barras de ferramentas, barras de menu e menus de atalho são todos controlados programaticamente como um tipo de objeto: Barras de comando. Todos os seguintes itens são representados no VBA pelos objetos CommandBar:
  • Barras de menu, barras de ferramentas e menus de atalho.
  • Menus nas barras de menu e barras de ferramentas.
  • Submenus em menus, submenus e menus de atalho.
É possível modificar qualquer barra de menu interna ou barra de ferramentas interna, e também é possível criar e modificar barras de ferramentas personalizadas, barras de menu e menus de atalho para usar com o seu código VBA. Os recursos de seus programas são apresentados como botões individuais em barras de ferrmentas ou como grupos de nomes de comandos em menus. Como as barras de ferramentas e menus são barras de comandos, os mesmos tipos de controles são usados.

No VBA e no Microsoft Visual Basic, os botões e os itens de menu são representados pelos objetos CommandBarButton. Os controles de pop-up que exibem menus e submenus são representados pelos objetos CommandBarPopup. Nos seguintes exemplos, os controles chamados "Menu" e "Submenu" são controles pop-up que exibem um menu e um submenu. O menu e o submenu são objetos CommandBar exclusivos, com seus próprios conjuntos de controles.

No Microsoft Excel, as barras de menu e as barras de ferramentas são citadas como o mesmo tipo de objeto progamável, o objeto CommandBar. Os controles no objeto CommandBar são usados para se referir a menus, itens de menu, submenus menus de atalho. Uma constante é usada com cada controle no argumento Type para especificar o tipo de controle que deseja usar para o menu, submenu ou o comando.

Constantes de controle

A seguir está uma lista das diversas constantes de controle no Excel 2003 que especificam o tipo de controle gráfico a ser usado para um controle de barra de menu específico:
  • MsoControlActiveX*
  • MsoControlAutoCompleteCombo***
  • MsoControlButton
  • MsoControlButtonDropdown
  • MsoControlButtonPopup
  • MsoControlComboBox
  • MsoControlCustom
  • MsoControlDropdown
  • MsoControlEdit
  • MsoControlExpandingGrid
  • MsoControlGauge
  • MsoControlGenericDropdown
  • MsoControlGraphicCombo
  • MsoControlGraphicDropdown
  • MsoControlGraphicPopup
  • MsoControlGrid
  • MsoControlLabel
  • MsoControlLabelEx***
  • MsoControlOCXDropDown
  • MsoControlPane **
  • MsoControlPopup
  • MsoControlSpinner***
  • MsoControlSplitButtonMRUPopup
  • MsoControlSplitButtonPopup
  • MsoControlSplitDropdown
  • MsoControlSplitExpandingGrid
  • MsoControlWorkPane**
*=Novo no Microsoft Excel 2000
**= Novo no Microsoft Excel 2002
***=Novo Microsoft Office Excel 2003

Barras de menu

Uma barra de menu é um tipo de barra de comando. Uma barra de menu é o tipo de objeto no qual os menus, itens de menu e submenus são adicionados.

Para obter mais informações sobre como gerenciar barras de menu e itens de menu no Excel, execute estas etapas:
  1. Inicie o Editor do Microsoft Visual Basic.
  2. No menu Ajuda, clique em Ajuda do Microsoft Visual Basic.
  3. Na caixa Assistente do Office ou na caixa Assistente de resposta, digite Barras de menu e clique em Pesquisar.
  4. No Excel 2003 e no Excel 2002, clique em Adicionando e gerenciando barras de menu e itens de menu. No Excel 2000, clique em Sobre menus e barras de ferramentas.
É possível fazer modificações na barra de menu e nos controles nessa barra de menu em tempo de execução. As alterações feitas na barra de menu podem afetar a aparência ou a posição da barra de menu. As alterações feitas nos controles dependem do tipo de controle. A seguinte tabela lista as propriedades mais comuns e os métodos comuns para alterar o estado, a ação ou o conteúdo de um controle:
Recolher esta tabelaExpandir esta tabela
Propriedade ou métodoFinalidade
AddAdiciona uma barra de menu usando o método Adad da coleção de objetos CommandBars e especificando o valor TRUE (Verdadeiro) para o argumento Menubar.
AtivadoSe a propriedade Enabled estiver definida com o valor TRUE (verdadeiro), o usuário poderá tornar a barra de menu especificada visível usando o código de Visual Basic. Se a propriedade Enabled estiver definida com o valor FALSE (falso), o usuário não poderá tornar a bara de menu visível. No entanto, a barra de menu irá aparecer na lista de barras de comando disponíveis.
ProteçãoPossibilita a proteção da barra de menu contra ações específicas de usuários.
PosiçãoEspecifica a posição da nova barra de menu relativa à janela do programa. A posição da barra de menu com relação à janela do programa pode ser uma das seguintes propriedades constantes MsoBarPosition: msoBarLeft, msoBarTop, msoBarRight, msoBarBottom, msoBarFloating, msoBarPopup (usada para criar menus de atalho) ou msoBarMenuBar (para usar apenas com Apple Macintosh).
VisibleEspecifica se o controle é visível ou oculto.

Retornar uma identificação para um controle da barra de comando

O seguinte exemplo de código retorna a identificação para a barra de menu ativa:
Sub Id_Control ()
Dim myId as Object
   set myId = CommandBars("Worksheet Menu Bar").Controls("Tools")
   MsgBox myId.Caption & Chr(13) & MyId.Id
End Sub

Determinar o nome da barra de menu ativa

O seguinte exemplo de código retorna o nome para a barra de menu ativa:
Sub MenuBars_GetName()
   MsgBox CommandBars.ActiveMenuBar.Name
End Sub

Salvar o estado ativo (para barras de menus internas ou personalizadas)

É aconselhável declarar a variável OriginalMenuBar como uma variável pública de modo que a sub-rotina possa usá-la em outra sub-rotina, como uma sub-rotina Fechar_Auto. Declarar e usar a variável dessa maneira redefine a barra de menu anterior do usuário para seu estado original. O seguinte exemplo de macro redefine a barra de menu:
Public OriginalMenuBar as Object

Sub MenuBars_Capture()
   Set OriginalMenuBar = CommandBars.ActiveMenuBar
End Sub

Criar uma barra de comando personalizada

O seguinte exemplo de código cria uma barra de comando personalizada chamada Minha barra de comando:
Sub MenuBar_Create() Application.CommandBars.Add Name:="My command bar" End Sub

Também é possível criar uma barra de comando usando o argumento Temporary:=True. O argumento Temporary:=True permite que as barras de comando sejam redefinidas automaticamente ao fechar o Excel. O seguinte código usa o argumento Temporary:=True para criar uma barra de comando personalizada:
Sub MenuBar_Create()
Application.CommandBars.Add Name:="My command bar", Temporary:=True
End Sub

Exibir uma barra de comando personalizada

O seguinte exemplo cria e exibe uma barra de menu Minha barra de menu personalizada e substitui a barra de menu interna:
Sub MenuBar_Show()
Dim myNewBar As Object
   Set myNewBar = CommandBars.Add(Name:="Custom1", Position:=msoBarFloating)
   ' You must first enable your custom menu bar before you make it visible.
   ' Enabling a menu bar adds it to the list of available menu bars on
   ' the Customize dialog box.
' Setting the menubar property to True replaces the built-in menu bar.
   myNewBar.Enabled = True
   myNewBar.Visible = True
End Sub

Excluir uma barra de comando personalizada

O seguinte exemplo de código exclui uma barra de menu personalizada chamada Personalizada 1:
Sub MenuBar_Delete()
   CommandBars("Custom1").Delete
End Sub

Ocultar uma barra de comando

O seguinte exemplo de código remove a barra de menu interna Gráfico da lista de barras de menu disponíveis:
Sub MenuBar_Display()
   CommandBars("Chart").Enabled = False
End Sub

Exibir uma barra de comando

O seguinte exemplo de código adiciona a barra de menu interna Gráfico a partir da lista de barras de menu disponíveis:
Sub MenuBar_Display()
   CommandBars("Chart").Enabled = True
End Sub

Restaurar uma barra de comando interna

Restaurar uma barra de menu redefine os controles padrão (para os menus e os itens de menu). O seguinte exemplo de código restaura a barra de menu interna Gráfico:
Sub MenuBar_Restore()
   CommandBars("Chart").Reset
End Sub
Observação É possível redefinir apenas barras de menu internas. Não é possível redefinir uma barra de menu personalizada.

Menus

Restaurar uma barra de menu redefine os controles padrão (para os menus e itens de menu). O seguinte exemplo de código restaura a barra de menu interna Gráfico:

Sub MenuBar_Restore()
   CommandBars("Chart").Reset
End Sub
Observação É possível redefinir apenas barras de menu internas. Não é possível redefinir uma barra de menu personalizada.

Adicionar um controle de menu personalizado a uma barra de comando

O seguinte exemplo de código adiciona o nome de um menu adicionado programaticamente à barra de menu Planilha. Por exemplo, este código adiciona o nome do menu Novo menu à barra de menu Planilha.

Observação É possível dar a esse menu qualquer nome que queira.
Sub Menu_Create()
Dim myMnu As Object
   Set myMnu = CommandBars("Worksheet menu bar").Controls. _
      Add(Type:=msoControlPopup, before:=3)
   With myMnu
   ' The "&" denotes a shortcut key assignment (Alt+M in this case).
      .Caption = "New &Menu"
   End With
End Sub

Desativar um controle de menu em uma barra de comando

Um controle de menu desativado aparece esmaecido e não está disponível em uma barra de comando. O seguinte exemplo desativa o menu Novo menu:
Sub Menu_Disable()
   CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = False
End Sub

Ativar um controle de menu em uma barra de comando

O seguinte exemplo de código ativa o menu Novo menu desativado na seção "Desativar um controle de menu em uma barra de comando":
Sub Menu_Disable()
   CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = True
End Sub

Excluir um controle de menu em uma barra de comando

O seguinte exemplo de código exclui o menu Novo menu criado na seção "Adicionar um controle de menu personalizado a uma barra de comando" da barra de menu Planilha:
Sub Menu_Delete()
   CommandBars("Worksheet menu bar").Controls("New &Menu").Delete
End Sub

Restaurar um controle de menu em uma barra de comando

O seguinte exemplo de código restaura a barra de menu interna Gráfico na barra de menu Planilha:
Sub Menu_Restore()
Dim myMnu As Object
   Set myMnu = CommandBars("Chart")
   myMnu.Reset
End Sub

Comandos

A quantidade de modificações que podem ser feitas a um comando depende do tipo de controle. Geralmente, os botões estão ativados ou ocultos. Caixas de edição, caixas de lista suspensa e caixas de combinação são mais versáteis de modo que é possível adicionar ou excluir itens da lista. Além disso, é possível determinar a ação realizada observando o valor dos itens selecionados a partir da lista. É possível alterar a ação de qualquer controle para uma função interna ou personalizada.

A seguinte tabela lista as propriedades mais comuns de um controle e os métodos comuns para alterar o estado, a ação ou o conteúdo de um controle:
Recolher esta tabelaExpandir esta tabela
Propriedade ou métodoFinalidade
AddAdiciona um comando à barra de comando.
AddItemAdiciona um item à lista suspensa, a uma parte de uma caixa de lista suspensa ou a uma caixa de combinação.
StyleEspecifica se a face do botão irá exibir um ícone ou uma legenda.
OnActionEspecifica o procedimento a ser executado quando o usuário alterar o valor de um controle.
VisibleEspecifica se o controle é visível ou oculto.

Para obter mais informações sobre menus no Excel 2003 e no Excel 2002, execute estas etapas:
  1. Inicie o Editor de script do Visual Basic.
  2. No menu Ajuda, clique em Ajuda do Microsoft Visual Basic.
  3. Na caixa Pesquisar na Ajuda digite menus e pressione ENTER.
  4. Clique em Adicionando e gerenciando barras de menu e itens de menu (Office).

Adicionar uma barra de separação a um controle de menu

O seguinte exemplo de código adiciona uma barra de separação antes do comando Planilha no menu Inserir:
Sub menuItem_AddSeparator()
   CommandBars("Worksheet menu bar").Controls("Insert") _
   .Controls("Worksheet").BeginGroup = True
End Sub
Observação Para remover uma barra de separação, defina a propriedade BeginGroup como False.

Criar um controle de comando personalizado em um menu

O seguinte exemplo de código cria um novo comando chamado Personalizar1 no menu Ferramentas da barra de menu Planilha e executa a macro Code_Custom1 ao clicar em Personalizar1:
Sub menuItem_Create()
   With CommandBars("Worksheet menu bar").Controls("Tools")
      .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Custom1"
      .Controls("Custom1").OnAction = "Code_Custom1"
   End With
End Sub

Colocar uma marca de verificação próxima a um controle de comando

O seguinte exemplo de código coloca marca de verificação próxima ao comando Personalizar1 se não for selecionado e remove a marca se o comando Personalizar1 for selecionado:
Sub menuItem_checkMark()
Dim myPopup as Object

   Set myPopup = CommandBars("Worksheet menu bar").Controls("Tools")
   If myPopup.Controls("Custom1").State = msoButtonDown Then
      ' Remove check mark next to menu item.
      myPopup.Controls("Custom1").State = msoButtonUp
      MsgBox "Custom1 is now unchecked"
      Else
        ' Add check mark next to menu item.
         myPopup.Controls("Custom1").State = msoButtonDown
         MsgBox "Custom1 is now checked"
    End If
End Sub

Desativar um controle de comando em uma barra de comando

O seguinte exemplo de código desativa o comando Personalizar1 criado no menu Ferramentas na seção "Criar um controle de comando personalizado em um menu":
Sub MenuItem_Disable()
Dim myCmd as Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
   myCmd.Controls("Custom1").Enabled = False
End Sub

Ativar um controle de comando em uma barra de comando

O seguinte exemplo de código ativa o comando Personalizar1 desativado na seção "Desativar um controle de comando em uma barra de comando":
Sub MenuItem_Enable()
Dim myCmd as Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
   myCmd.Controls("Custom1").Enabled = True
End Sub

Excluir um controle de menu em um menu

O seguinte exemplo de código exclui o comando Salvar do menu Arquivo:
Sub menuItem_Delete()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("File")
   myCmd.Controls("Save").Delete
End Sub

Restaurar um controle de comando interno em um menu

Para restaurar um controle de comando em um menu, é necessário saber o número de identificação (ID) para o controle. Para determinar o número de identificação, consulte a seção "Retornar uma identificação para um controle da barra de comando". O seguinte exemplo exclui e restaura o comando Salvar excluído na seção "Excluir um controle de comando em um menu":
Sub menuItem_Restore()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("File")
   ' Id 3 refers to the Save menu item control.
   myCmd.Controls.Add Type:=msoControlButton, ID:=3, Before:=5
End Sub

Submenus

Os submenus aparecem ao lado do menu pai ao clicar em um comando. Um comando que é um controle de submenu possui uma pequena seta preta localizada à direita do nome do comando.

Adicionar um submenu

O seguinte código de exemplo adiciona um novo submenu chamado Novo sub ao menu Ferramentas da barra de menu Planilha:
Sub SubMenu_Create()
Dim newSub as Object
   Set newSub = CommandBars("Worksheet menu bar").Controls("Tools")
   With newSub
      .Controls.Add(Type:=msoControlPopup, Before:=1).Caption="NewSub"
   End With
End Sub

Adicionar um comando a um submenu

O seguinte exemplo de código adiciona um novo comando chamado SubItem1 ao submenu Novo sub e executa a macro Code_SubItem1 ao clicar em SubItem1:
Sub SubMenu_AddItem()
Dim newSubItem as Object
   Set newSubItem = CommandBars("Worksheet menu bar") _
   .Controls("Tools").Controls("NewSub")
   With newSubItem
      .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "SubItem1"
      .Controls("SubItem1").OnAction = "Code_SubItem1"
   End With
End Sub

Desativar um controle de comando em um submenu

O seguinte exemplo de código desativa o mesmo comando SubItem criado na seção "Adicionar um comando a um submenu":

Sub SubMenu_DisableItem()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Controls("SubItem1").Enabled = False
End Sub


O seguinte exemplo ativa o mesmo comando SubItem:
Sub SubMenu_DisableItem()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Controls("SubItem1").Enabled = True
End Sub

Excluir um comando em um submenu

O seguinte exemplo exclui o comando SubItem1 criado no submenu Novo sub na seção "Adicionar um comando a um submenu":
Sub SubMenu_DeleteItem()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Controls("SubItem1").Delete
End Sub

Desativar um controle de submenu

O seguinte exemplo de código desativa o submenu Novo sub criado no menu Ferramentas na seção "Adicionar um submenu":
Sub SubMenu_DisableSub()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Enabled = False
End Sub
Observação Para ativar o controle desativado, defina a propriedade Ativada como True .

Excluir um controle de submenu

O seguinte exemplo de código exclui o submenu Novo sub criado no menu Ferramentas na seção "Adicionar um submenu":
Sub SubMenu_DeleteSub()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Delete
End Sub

Barras de menu de atalho

Um menu de atalho é uma barra de comando flutuante que aparece quando o usuário clica com o botão direito do mouse em um objeto. Uma barra de menu de atalho pode conter os mesmos tipos de controle que uma barra de comando, e os controles se comportam da mesma maneira que os controles em uma barra de comando. Não é possível criar ou modificar menus de atalho a partir da interface do programa na maioria dos programas. Portanto, você deve criar e modificar seus menus de atalho em tempo de execução.

Para obter mais informações sobre menus de atalho no Excel 2002 e no Excel 2003 execute estas etapas:
  1. Inicie o Editor de script do Visual Basic.
  2. No menu Ajuda, clique em Ajuda do Microsoft Visual Basic.
  3. Na caixa Pesquisar na Ajuda, digite atalhos e pressione ENTER.
  4. Clique em Adicionado e exibindo menus de atalho.

Criar uma nova barra de menu de atalho

O seguinte exemplo de código cria uma nova barra de menu de atalho chamada Minha barra de atalho:

Sub Shortcut_Create()
Dim myShtCtBar as Object
   Set myShtCtBar = CommandBars.Add(Name:="myShortcutBar", _
   Position:=msoBarPopup)
   ? This displays the shortcut menu bar.
   ? 200, 200 refers to the screen position in pixels as x and y coordinates.
   myShtCtBar.ShowPopup 200,200
End Sub

Observação A barra de menu de atalho aparece vazia porque nenhum controle (itens de menu ou submenus) foi adicionado.

Menus de atalho

Barras de menu de atalho aparecem ao clicar com o botão direito do mouse em um objeto específico do Excel. O Excel possui muitas barras de menu de atalho para as quais uma variedade de menus está disponível. Também é possível criar barras de menu personalizadas e personalizar as barras de menu internas.

Criar um comando em uma barra de menu de atalho

O seguinte exemplo de código cria um novo comando de menu chamado Item1 na barra de menu de atalho Minha barra de atalho e executa a macro Code_Item1 ao clicar em Item1:
Sub Shortcut_AddItem()
Dim myBar as Object
   Set myBar = CommandBars("myShortcutBar")
   With myBar
      .Controls.Add (Type:=msoControlButton, before:=1).Caption = "Item1"
      .Controls("Item1").OnAction = "Code_Item1"
   End With
   myBar.ShowPopup 200,200
End Sub

Desativar um controle de comando em uma barra de menu de atalho

O seguinte exemplo de código desativa o comando Item1 criado na seção "Criar um comando em um menu de atalho":
Sub Shortcut_DisableItem()
   Set myBar = CommandBars("myShortcutBar")
   myBar.Controls("Item1").Enabled = False
   myBar.ShowPopup 200,200
End Sub
Observação Para ativar o item desativado, defina a propriedade Enabled como True.

Excluir um comando em uma barra de menu de atalho

O seguinte código de exemplo exclui o comando de menu chamado Item1 na barra de menu de atalho Minha barra de atalho:
Sub Shortcut_DeleteItem()
   Set myBar = CommandBars("myShortcutBar")
   myBar.Controls("Item1").Delete
   myBar.ShowPopup 200,200
End Sub

Excluir uma barra de menu de atalho

Excluira barra de menu de atalho remove todos os itens. Não é possível restaurar uma barra de menu personalizada excluída. Para restaurá-la, é necessário criá-la novamente e também recriar todos os itens de menu e submenus.

O seguinte exemplo de código exclui a barra de menu de atalho myShortCutBar criada na seção "Criar um comando em uma barra de menu de atalho":
Sub Shortcut_DeleteShortCutBar()
   CommandBars("MyShortCutBar").Delete
End Sub

Restaurar um comando em uma barra de menu de atalho interna

O seguinte exemplo de código restaura os comandos padrão na barra de menu de atalho da planilha Célula:
Sub Shortcut_RestoreItem()
   CommandBars("Cell").Reset
End Sub

Submenus em menus de atalho

É possível criar submenus em barras de menu de atalho. Os submenus aparecem ao lado do menu pai ao clicar em um controle de comando. Um comando que é um controle de submenu possui uma pequena seta preta localizada à direita de seu nome.

Criar um novo submenu em uma barra de menu de atalho

O seguinte exemplo adiciona um novo submenu chamado Novo sub no menu de atalho da planilha Célula:
Sub ShortcutSub_Create()
   CommandBars("Cell").Controls.Add(Type:=msoControlPopup, before:=1) _
   .Caption = "NewSub"
    ' This displays the shortcut menu bar.
    ' 200, 200 refers to the screen position in pixels as x and y coordinates.
   CommandBars("Cell").ShowPopup 200, 200
End Sub
Observação O submenu está vazio porque nenhum item de menu foi adicionado a ele.

Criar um controle de comando em um submenu localizado em uma barra de menu de atalho

A seguinte macro adiciona o comando SubItem1 ao submenu Novo sub criado no menu de atalho Célula e executa a macro Code_SubItem1 ao clicar em SubItem1:
Sub ShortcutSub_AddItem()
Dim newSubItem as Object
   Set newSubItem = CommandBars("Cell").Controls("NewSub?)
   With newSubItem
      .Controls.Add(Type:=msoControlButton, before:=1).Caption = "subItem1"
      ' This will run the subItem1_Code macro when subItem1 is clicked.
      .Controls("subItem1").OnAction = "Code_subItem1"
   End With
   ' This displays the Cell shortcut menu bar.
   ' 200, 200 refers to the screen position in pixels as x and y coordinates
   CommandBars("Cell").ShowPopup 200, 200
End Sub

Desativar um controle de item do submenu em um menu de atalho

O seguinte exemplo de código desativa o comando SubItem1 no submenu Novo sub:
Sub ShortcutSub_DisableItem()
   CommandBars("Cell").Controls("NewSub") _
   .Controls("subItem1").Enabled = False
   ' This displays the Cell shortcut menu bar.
   ' 200, 200 refers to the screen position in pixels as x and y coordinates.
   CommandBars("Cell").ShowPopup 200, 200
End Sub
Observação Para ativar um item desativado, defina a propriedade Ativada como True.

Excluir um controle de item do submenu em um menu de atalho

O seguinte exemplo de código exclui o comando SubItem1 do submenu Novo sub:
Sub ShortcutSub_DeleteItem()
   CommandBars("Cell").Controls("NewSub").Controls("subItem1").Delete
   ' This displays the Cell shortcut menu bar.
   ' 200, 200 refers to the screen position in pixels as x and y coordinates.
   CommandBars("Cell").ShowPopup 200, 200
End Sub

Desativar um controle do submenu em um menu de atalho

O seguinte exemplo de código desativa o submenu Novo sub na barra de menu de atalho Célula:
Sub ShortcutSub_DisableSub()
   CommandBars("Cell").Controls("NewSub").Enabled = False
   ' This displays the Cell shortcut menu bar.
   ' 200, 200 refers to the screen position in pixels as x and y coordinates.
   CommandBars("Cell").ShowPopup 200, 200
End Sub
Observação Para ativar um item desativado, defina a propriedade Ativada como True.

Excluir um controle do submenu em um menu de atalho

O seguinte exemplo de código exclui o submenu Novo sub criado na barra de menu de atalho Célula:
Sub ShortcutSub_DeleteSub()
   CommandBars("Cell").Controls("NewSub").Delete
   ' This displays the Cell shortcut menu bar.
   ' 200, 200 refers to the screen position in pixels as x and y coordinates.
   CommandBars("Cell").ShowPopup 200, 200
End Sub

Localizar mais informações

Os seguintes recursos estão disponíveis para fornecer mais informações sobre como personalizar menus e barras de menus no Excel.

Pesquisador de objetos

O Pesquisador de objetos contém uma lista completa de todas as propriedades e todos os métodos para um comando específico. Para localizar essas informações, vá para o Editor do Visual Basic (pressione ALT+F11), clique em Pesquisador de objetos no menu Exibir (ou pressione F2), digite o nome do controle na caixa Pesquisar e pressione ENTER ou clique em Pesquisar.

Base de Dados de Conhecimento da Microsoft

A Base de Dados de Conhecimento Microsoft é uma fonte de informações principais da Microsoft para profissionais de suporte do Atendimento Microsoft. A Base de Dados de Conhecimento Microsoft também está disponível para clientes da Microsoft. Esse banco de dados abrangente contém artigos detalhados com informações técnicas sobre produtos da Microsoft, listas de correções documentadas, erros de documentação e respostas as perguntas de suporte técnico freqüentes.

Para se conectar a Base de Dados de Conhecimento Microsoft, visite o seguinte site da Microsoft e siga as instruções que aparecem na página:
http://support.microsoft.com

Propriedades

ID do artigo: 830502 - Última revisão: sábado, 10 de março de 2007 - Revisão: 5.0
A informação contida neste artigo aplica-se a:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
Palavras-chave: 
kbhowtomaster KB830502

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com