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





