Criar um menu de atalho para um formulário, controle de formulário ou relatório

Aplica-se ao: Access 2013

Quando você estiver criando um formulário ou relatório, você pode fornecer um método para que um usuário use, facilmente, um comando que se aplica somente ao contexto atual. Uma maneira de fazer isso é criar um menu de atalho personalizado e aplicá-lo a um relatório de formulário ou controle. O menu de atalho é exibido quando o usuário clica com o botão direito do mouse no objeto ao qual o menu de atalho é aplicado.

Em versões anteriores do Access, você podia usar a caixa de diálogo personalizar para criar menus de atalho personalizado. No Access 2013, use um código do Visual Basic for Applications (VBA) para criar menus de atalho. Este artigo descreve a criação de um menu de atalho com o VBA.

Para criar um menu de atalho, primeiro você precisa criar um objeto CommandBar. O objeto CommandBar representa o menu de atalho. Em seguida, use o método Add para criar objetos CommandBarControl. Sempre que criar um objeto CommandBarControl, um comando é adicionado ao menu de atalho.

O exemplo a seguir cria o menu de atalho chamado SimpleShortcutMenu, que inclui dois comandos, Remove Filter/Sort e Filter by Selection.

Observação

Para usar os exemplos a seguir, defina uma referência para o Microsoft Office 15.0 Object Library. Definir referências às Bibliotecas de Tipos para saber mais sobre como definir referências.

Sub CreateSimpleShortcutMenu() 
    Dim cmbShortcutMenu As Office.CommandBar 
     
    ' Create a shortcut menu named "SimpleShortcutMenu. 
    Set cmbShortcutMenu = CommandBars.Add("SimpleShortcutMenu", msoBarPopup, False, True) 
     
    ' Add the Remove Filter/Sort command. 
    cmbShortcutMenu.Controls.Add Type:=msoControlButton, Id:=605 
 
    ' Add the Filter By Selection command. 
    cmbShortcutMenu.Controls.Add Type:=msoControlButton, Id:=640 
     
    Set cmbShortcutMenu = Nothing 
     
End Sub

Depois que você executa o código, o menu de atalho é salvo como parte do banco de dados. Você não precisará executar o mesmo código para recriar o menu de atalho sempre que abrir o banco de dados.

Para atribuir o menu de atalho a um formulário, controle de formulário ou relatório, defina a propriedade Menu de Atalho do objeto como Yes e a propriedade Barra de Menus de Atalho como o nome do menu de atalho. Por exemplo, defina a propriedade Barra de Menus de Atalho como SimpleShortcutMenu.

O exemplo a seguir cria um menu de atalho chamado cmdFormFiltering que inclui comandos que são úteis para usar com Formulários contínuos. Neste exemplo, a propriedade BeginGroup é usada em vários controles para agrupá-los visualmente.

Sub CreateShortcutMenuWithGroups() 
    Dim cmbRightClick As Office.CommandBar 
 
 ' Create the shortcut menu. 
    Set cmbRightClick = CommandBars.Add("cmdFormFiltering", msoBarPopup, False, True) 
     
    With cmbRightClick 
        ' Add the Find command. 
        .Controls.Add msoControlButton, 141, , , True 
         
        ' Start a new grouping and add the Sort Ascending command. 
        .Controls.Add(msoControlButton, 210, , , True).BeginGroup = True 
         
        ' Add the Sort Descending command. 
        .Controls.Add msoControlButton, 211, , , True 
         
        ' Start a new grouping and add the Remove Filer/Sort command. 
        .Controls.Add(msoControlButton, 605, , , True).BeginGroup = True 
         
        ' Add the Filter by Selection command. 
        .Controls.Add msoControlButton, 640, , , True 
         
        ' Add the Filter Excluding Selection command. 
        .Controls.Add msoControlButton, 3017, , , True 
         
        ' Add the Between... command. 
        .Controls.Add msoControlButton, 10062, , , True 
    End With 
 
Set cmbRightClick = Nothing 
End Sub

O exemplo a seguir cria um menu de atalho chamado cmdReportRightClick que inclui comandos que são úteis para usar com um relatório. Este exemplo mostra como alterar a propriedade Caption de cada controle, à medida que são adicionados ao menu de atalho.

Sub CreateReportShortcutMenu() 
    Dim cmbRightClick As Office.CommandBar 
    Dim cmbControl As Office.CommandBarControl 
 
   ' Create the shortcut menu. 
    Set cmbRightClick = CommandBars.Add("cmdReportRightClick", msoBarPopup, False, True) 
 
    With cmbRightClick 
         
        ' Add the Print command. 
        Set cmbControl = .Controls.Add(msoControlButton, 2521, , , True) 
        ' Change the caption displayed for the control. 
        cmbControl.Caption = "Quick Print" 
         
        ' Add the Print command. 
        Set cmbControl = .Controls.Add(msoControlButton, 15948, , , True) 
        ' Change the caption displayed for the control. 
        cmbControl.Caption = "Select Pages" 
         
        ' Add the Page Setup... command. 
        Set cmbControl = .Controls.Add(msoControlButton, 247, , , True) 
        ' Change the caption displayed for the control. 
        cmbControl.Caption = "Page Setup" 
         
        ' Add the Mail Recipient (as Attachment)... command. 
        Set cmbControl = .Controls.Add(msoControlButton, 2188, , , True) 
        ' Start a new group. 
        cmbControl.BeginGroup = True 
        ' Change the caption displayed for the control. 
        cmbControl.Caption = "Email Report as an Attachment" 
         
        ' Add the PDF or XPS command. 
        Set cmbControl = .Controls.Add(msoControlButton, 12499, , , True) 
        ' Change the caption displayed for the control. 
        cmbControl.Caption = "Save as PDF/XPS" 
         
        ' Add the Close command. 
        Set cmbControl = .Controls.Add(msoControlButton, 923, , , True) 
        ' Start a new group. 
        cmbControl.BeginGroup = True 
        ' Change the caption displayed for the control. 
        cmbControl.Caption = "Close Report" 
    End With 
     
    Set cmbControl = Nothing 
    Set cmbRightClick = Nothing 
End Sub

Sobre os colaboradores

Exemplo de código fornecido por Edwin Blancovitch, presidente do Advanced Developers.net, que criou o Easy Payroll, um pacote de software para gerenciar as necessidades de recursos humanos, folha de pagamento, horários, agendamento e participações.

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.