Dica: outros idiomas são traduzidos pelo Google. Você pode visitar o English versão deste link.
Entrar
x
or
x
x
Registre-se
x

or

Como adicionar um botão personalizado ao menu de clique / contexto certo no Excel?

Como abaixo das capturas de tela mostradas, muitas pessoas tendem a adicionar suas funções usadas com freqüência ao menu do botão direito do Excel para poder usar estas funções rapidamente com apenas um clique no futuro. Este artigo está falando sobre a adição de botão de código personalizado ao menu de clique direito no Excel.

Adicionar botão personalizado ao menu de contexto no Excel com o código VBA


arrow blue right bubbleAdicionar botão personalizado ao menu de contexto no Excel com o código VBA


Supondo que você criou um script VBA chamado MyMacro no seu Excel, e agora você precisa adicionar esta função ao menu de contexto para executar o código apenas clicando nele. Faça o seguinte.

1. aperte o outro + F11 teclas simultaneamente para abrir o Microsoft Visual Basic para Aplicações janela.

2. No Microsoft Visual Basic para Aplicações janela, clique duas vezes ThisWorkbook no lado esquerdo Projeto painel. E, em seguida, copie e cole o código VBA abaixo no ThisWorkbook (Código) janela.

Código VBA: adicione o botão personalizado ao menu de contexto no Excel

Private Sub Workbook_Deactivate()
    On Error Resume Next
        With Application
            .CommandBars("Cell").Controls("MyMacro").Delete
        End With
    On Error GoTo 0
End Sub

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Dim cmdBtn As CommandBarButton
    On Error Resume Next
        With Application
            .CommandBars("Cell").Controls("MyMacro").Delete
            Set cmdBtn = .CommandBars("Cell").Controls.Add(Temporary:=True)
        End With

        With cmdBtn
           .Caption = "MyMacro"
           .Style = msoButtonCaption
           .OnAction = "MyMacro"
        End With
    On Error GoTo 0
End Sub

notas: No código, substitua tudo "MyMacro" com o nome da Macro que você criou no seu Excel.

3. aperte o outro + Q chaves para sair do Microsoft Visual Basic para Aplicações janela.

Agora você retorna à interface do Excel, depois de clicar com o botão direito do mouse em uma célula, você verá que o novo botão com o nome especificado é adicionado ao menu do botão direito do mouse, conforme mostrado abaixo na tela. Clique no botão irá ativar a Macro correspondente imediatamente.


arrow blue right bubbleArtigos relacionados:



Ferramentas de produtividade recomendadas para o Excel

Kutools for Excel ajuda você a concluir o trabalho antes do tempo e se destacar da multidão

  • Mais do que poderosos recursos avançados do 300, projetados para cenários de trabalho 1500, aumentando a produtividade em 70%, você tem mais tempo para cuidar da família e aproveitar a vida.
  • Não precisa mais memorizar fórmulas e códigos VBA, dê um descanso a seu cérebro a partir de agora.
  • Torne-se um especialista em Excel em minutos 3, operações complicadas e repetidas podem ser feitas em segundos,
  • Reduza milhares de operações de teclado e mouse todos os dias, diga adeus às doenças ocupacionais agora.
  • 110,000 pessoas altamente eficazes e escolha de empresas de renome mundial 300 +.
  • 60-day full features versão de avaliação gratuita. Garantias de devolução do dinheiro 60. 2 anos de atualização e suporte gratuitos.

Traz navegação com guias e edição para o Microsoft Office, muito mais poderosa do que as guias do navegador

  • A guia Office foi projetada para Word, Excel, PowerPoint e outros aplicativos do Office: Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    MFouad · 8 months ago
    Thanks
    Does that working for all workbooks even after restarting Excel, or only for the selected workbook which saved the macro in?
    • To post as a guest, your comment is unpublished.
      Виктор · 1 months ago
      Размести код в отдельном модуле, для того чтобы это работало для всех документов
    • To post as a guest, your comment is unpublished.
      crystal · 8 months ago
      Hi,
      It only works for the workbook which save the macro in. Thank you for your comment.
  • To post as a guest, your comment is unpublished.
    Vic · 1 years ago
    Add VBA button to context menu works well. Thanks. How do I add more buttons ? (not good at VBA, hence the question).
    • To post as a guest, your comment is unpublished.
      crystal · 7 months ago
      Hi Vic,
      The following VBA code can help you solve the problem, please have a try.

      Private Sub Workbook_Deactivate()
      Dim xArrB As Variant
      Dim xFNum As Integer
      Dim xStr As String
      On Error Resume Next
      With Application
      xArrB = Array("MyMacro01", "MyMacro02", "MyMacro03")
      For xFNum = 0 To UBound(xArrB)
      xStr = xArrB(xFNum)
      .CommandBars("Cell").Controls(xStr).Delete
      Next xFNum
      End With
      On Error GoTo 0
      End Sub

      Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
      Dim cmdBtn As CommandBarButton
      Dim xArrB As Variant
      Dim xFNum As Integer
      Dim xStr As String
      On Error Resume Next
      xArrB = Array("MyMacro01", "MyMacro02", "MyMacro03")
      For xFNum = 0 To UBound(xArrB)
      xStr = xArrB(xFNum)
      With Application
      .CommandBars("Cell").Controls(xStr).Delete
      Set cmdBtn = .CommandBars("Cell").Controls.Add(Temporary:=True)
      End With
      With cmdBtn
      .Caption = xStr
      .Style = msoButtonCaption
      .OnAction = xStr
      End With
      Next xFNum
      On Error GoTo 0
      End Sub
      • To post as a guest, your comment is unpublished.
        Mike · 4 months ago
        This doesn't work for me, I have done exactly the same as the above macro with only one menu, Does it work for anyone else or am I doing something wrong?

        Thanks