Objetivo: Demonstrar a criação de um menu suspenso no Excel.
Encontrei no livro VBA e Macros para Microsoft Office Excel 2007 de Bill Jelen e Tracy Syrstad este código que achei interessante e adaptei nesta planilha com comentários relevantes.
Este código executa um menu suspenso quando é acionada uma macro, ocultando todos os menus suspensos do botão direito da planilha e depois adicionando novamente.
Ao abrir a planilha e fechar os menus são “resetados” ou seja, voltam ao seu estado normal, caso contrário todas as opções normais do botão direito do Excel seriam ocultas.
Abaixo o código fonte:
Sub MenuSuspenso()
Application.CommandBars("Cell").Reset
Dim cbc As CommandBarControl
'Oculta todos os comandos do botão direito
For Each cbc In Application.CommandBars("cell").Controls
cbc.Visible = False
Next cbc
'Adiciona um comando ao menu suspenso
With Application.CommandBars("Cell").Controls.Add(temporary:=True)
.Caption = "Minha Macro 1"
.OnAction = "Test1"
End With
'Adiciona um comando ao menu suspenso
With Application.CommandBars("Cell").Controls.Add(temporary:=True)
.Caption = "Minha Macro 2"
.OnAction = "Test2"
End With
'Adiciona um comando ao menu suspenso
With Application.CommandBars("Cell").Controls.Add(temporary:=True)
.Caption = "Minha Macro 3"
.OnAction = "Test3"
End With
Application.CommandBars("Cell").ShowPopup
End Sub
Sub Test1()
MsgBox "Essa é a macro Teste1 do menu de evento do clique com o botão direito personalizado do objeto ActiveX..", , "Item de menu ''Minha Macro 1''"
End Sub
Sub Test2()
MsgBox "Essa é a macro Teste2 do menu de evento do clique com o botão direito personalizado do objeto ActiveX..", , "Item de menu ''Minha Macro 2''"
End Sub
Sub Test3()
MsgBox "Essa é a macro Teste3 do menu de evento do clique com o botão direito personalizado do objeto ActiveX..", , "Item de menu ''Minha Macro 3''"
End Sub
Baixe a planilha
Abraço
Marcos Rieper
Avalie este post



