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 SubBaixe a planilha
Abraço
Marcos Rieper