Como personalizar menus e barras de menu no Excel

Objetivo: Como personalizar menus e barras de menu no Excel.

Botão direito menu

Neste artigo  é demonstrado  como criar um menu pop-up, inserindo ele no menu de uma planilha ao clicar com o botão  direito em uma célula, chamando procedimentos em VBA que você tenha armazenado, tornando mais profissional a sua aplicação.

No nosso exemplo criamos um botão que facilita a navegação entre as planilhas de um arquivo Excel, fazendo com que o mesmo retorne ao Menu quando clicado.

Para isso vamos então á criação:

1. Abra o Visual Basic na guia Desenvolvedor ou pressionando as teclas de atalho ALT+F11

2. Na sua planilha insira um novo módulo, clicando em Inserir->Módulo

3. No módulo criado digite o seguinte código:

Sub lsAdicionarMenu()
    'Limpa os comandos adicionados
    Application.CommandBars("cell").Reset
    
    'Adiciona um comando
    With Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton, before:=1, temporary:=True)
        'Descrição do comando
        .Caption = "Voltar para o Menu"
        'Ação realizada ao selecionar esta opção
        .OnAction = "'" & ThisWorkbook.Name & "'!" & "lsMenu"
        'Imagem que irá ser apresentada no menu
        .FaceId = 1016
        'Descrição
        .Tag = "Voltar para o Menu"
        .DescriptionText = "Voltar ao menu principal!"
    End With
    
    'Segundo menu com botões
    Set MenuItem = Application.CommandBars("Cell").Controls.Add(Type:=msoControlPopup, before:=2)
    With MenuItem
        .Caption = "Menu especial"

        With .Controls.Add(Type:=msoControlButton)
            .Caption = "Cotação"
            .FaceId = 71
            .OnAction = "'" & ThisWorkbook.Name & "'!" & "lsCotacao"
        End With

        With .Controls.Add(Type:=msoControlButton)
            .Caption = "Lista de compras"
            .FaceId = 72
            .OnAction = "'" & ThisWorkbook.Name & "'!" & "lsListaCompras"
        End With
    End With
End Sub

Sub lsMenu()
    'Seleciona a planilha Menu
    Worksheets("Menu").Select
    Worksheets("Menu").Range("a1").Select
End Sub

Sub lsCotacao()
    'Seleciona a planilha Menu
    Worksheets("Cotação").Select
    Worksheets("Cotação").Range("a1").Select
End Sub

Sub lsListaCompras()
    'Seleciona a planilha Menu
    Worksheets("Lista de compras").Select
    Worksheets("Lista de compras").Range("a1").Select
End Sub

Sub lsRemoverMenu()
    'Limpa todos os comandos adicionados
    Application.CommandBars("cell").Reset
End Sub

4. Agora clique na pasta Microsoft Excel Objetos e selecione o componente EstaPasta_de_trabalho e digite o seguinte código:

'Ao ativar o arquivo adiciona o menu
Private Sub Workbook_Activate()
    lsAdicionarMenu
End Sub

'Ao desativar o arquivo remove o menu
Private Sub Workbook_Deactivate()
    lsRemoverMenu
End Sub
Botão direito menu2

5. Com os códigos inseridos ao clicar com o botão direito em uma célula do Excel o menu terá uma nova opção, “Voltar para o menu”, conforme criamos e outra com um menu especial com outras duas abas, note que os números 1 e 2 são imagens também.

Botão direito menu4

6. Ao clicar na opção que criamos o procedimento que está associado ao menu e a ação é tomada, como por exemplo a navegação entre as abas como é o caso.

7. Para alterar a imagem do menu você pode alterar o número FaceId, veja o código correspondente nas listas de imagens abaixo:

http://www.outlookexchange.com/articles/toddwalker/BuiltInOLKIcons.asp

Veja o nosso arquivo de exemplo clicando no botão abaixo:

Baixe a planilha

Abraço

Marcos Rieper


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel