Objetivo: Como personalizar menus e barras de menu no Excel.
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
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.
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:
Veja o nosso arquivo de exemplo clicando no botão abaixo:
Baixe a planilhaAbraço
Marcos Rieper