Como personalizar menus de atalho do Excel 2016 no VBA

Como personalizar menus de atalho do Excel 2016 no VBA

Antes do Excel 2007, os programadores de VBA usavam o objeto CommandBar para criar menus personalizados, barras de ferramentas personalizadas e menus de atalho personalizados (clique com o botão direito). A partir do Excel 2007, o objeto CommandBar está em uma posição bastante estranha. Se você escrever código para personalizar um menu ou barra de ferramentas, o Excel intercepta esse código e ignora muitos dos seus comandos.

Em vez de exibir seu aprimoramento de interface bem pensado, o Excel 2007 (como as versões posteriores) simplesmente despeja seus menus e barras de ferramentas personalizados em uma guia abrangente da Faixa de Opções chamada Add-Ins.

As personalizações de menu e barra de ferramentas acabam em Suplementos → Comandos de menu ou no grupo Suplementos → Barras de ferramentas personalizadas. Mas personalizar menus de atalho (que também usa o objeto CommandBar) ainda funciona como sempre - bem, mais ou menos.

Resultado? O objeto CommandBar não é mais muito útil, mas continua sendo a única maneira de personalizar menus de atalho.

Adicionando um novo item ao menu de atalho da Célula

Abaixo, você encontrará um código de amostra que adiciona um novo item ao menu de atalho que aparece quando você clica com o botão direito do mouse em uma célula. Você deve ser capaz de adaptar esses exemplos às suas necessidades.

Você pode melhorar um pouco o utilitário Change Case, disponibilizando-o no menu de atalho Cell.

O procedimento AddToShortcut adiciona um novo item de menu ao menu de atalho da célula. Você pode adaptá-lo para apontar para suas próprias macros, alterando as propriedades Caption e OnAction do objeto denominado NewControl.

Sub AddToShortCut ()
  Dim Bar como CommandBar
  Dim NewControl As CommandBarButton
  DeleteFromShortcut
  Set Bar = Application.CommandBars (“Cell”)
  Definir NewControl = Bar.Controls.Add _
     (Tipo: = msoControlButton, ID: = 1, _
     temporário: = Verdadeiro)
  Com NewControl
    .Caption = “& Alterar maiúsculas e minúsculas”
    .OnAction = “ChangeCase”
    .Style = msoButtonIconAndCaption
  Terminar com
End Sub

Quando você modifica um menu de atalho, essa modificação permanece em vigor até que você reinicie o Excel. Em outras palavras, os menus de atalho modificados não se redefinem quando você fecha a pasta de trabalho que contém o código VBA. Portanto, se você escrever código para modificar um menu de atalho, quase sempre escreverá código para reverter o efeito de sua modificação.

O procedimento DeleteFromShortcut remove o novo item de menu do menu de atalho da célula:

Sub DeleteFromShortcut ()
  On Error Resume Next
  Application.CommandBars (“Cell”). Controles _
    (“& Alterar maiúsculas e minúsculas”). Excluir
End Sub

Isso mostra como o novo item de menu é exibido depois que você clica com o botão direito do mouse em uma célula.

Como personalizar menus de atalho do Excel 2016 no VBA

O menu de atalho da Célula mostrando um item de menu personalizado: Alterar maiúsculas e minúsculas.

O primeiro comando real após a declaração de algumas variáveis ​​chama o procedimento DeleteFromShortcut. Essa declaração garante que apenas um item de menu Change Case apareça no menu de atalho Cell. Experimente comentar essa linha (coloque um apóstrofo no início da linha) e execute o procedimento algumas vezes - mas não se empolgue!

Clique com o botão direito em uma célula e você verá várias instâncias do item de menu Alterar caso. Livre-se de todas as entradas executando DeleteFromShortcut várias vezes (uma para cada item de menu extra).

Finalmente, você precisa de uma maneira de adicionar o item de menu de atalho quando a pasta de trabalho for aberta e excluir o item de menu quando a pasta de trabalho for fechada. Fazer isso é fácil. Basta adicionar esses dois procedimentos de evento ao módulo de código ThisWorkbook:

Sub Workbook_Open ()
Chame AddToShortCut
End Sub
Private Sub Workbook_BeforeClose (Cancelar como Booleano)
Chamar DeleteFromShortcut
End Sub

O procedimento Workbook_Open é executado quando a pasta de trabalho é aberta e o procedimento Workbook_BeforeClose é executado antes que a pasta de trabalho seja fechada. Exatamente o que o médico receitou.

O que é diferente no Excel 2013 e Excel 2016?

Se você usou o VBA para trabalhar com menus de atalho no Excel 2007 ou anterior, você precisa estar ciente de uma alteração significativa.

No passado, se seu código modificava um menu de atalho, essa modificação era válida para todas as pastas de trabalho. Por exemplo, se você adicionou um novo item ao menu do botão direito do mouse Célula, esse novo item aparecerá quando você clicar com o botão direito em uma célula em qualquer pasta de trabalho (além de outras pastas de trabalho que você abrir mais tarde). Em outras palavras, as modificações do menu de atalho foram feitas no nível do aplicativo .

O Excel 2013 e o Excel 2016 usam uma única interface de documento e isso afeta os menus de atalho. As alterações feitas nos menus de atalho afetam apenas a janela da pasta de trabalho ativa. Quando você executa o código que modifica o menu de atalho, o menu de atalho para janelas diferentes da janela ativa não será alterado. Este é um desvio radical de como as coisas costumavam funcionar.

Outra reviravolta: se o usuário abrir uma pasta de trabalho (ou criar uma nova pasta de trabalho) quando a janela ativa exibir o menu de atalho modificado, a nova pasta de trabalho também exibirá o menu de atalho modificado. Em outras palavras, as novas janelas exibem os mesmos menus de atalho que a janela que estava ativa quando as novas janelas foram abertas.

Resumindo: no passado, se você abrisse uma pasta de trabalho ou suplemento que modificava os menus de atalho, podia ter certeza de que os menus de atalho modificados estariam disponíveis em todas as pastas de trabalho. Você não tem mais essa garantia.

Crie menus de atalho personalizados no Access 2007

A janela de design de macro é diferente no Access 2007 em comparação com versões posteriores, portanto, expanda as seções a seguir para acompanhar se você estiver usando o Access 2007.

Etapa 1 para o Access 2007: Criar um grupo de macros que contenha os comandos de menu

Nesta etapa, você cria um grupo de macros, cada macro será um comando separado no menu de atalho.

O que é um macrogrupo?

Um grupo de macros é um único objeto de macro que contém duas ou mais macros independentes. As macros individuais são identificadas digitando um nome para cada macro na coluna Nomes de Macro. Na ilustração a seguir,  Macro3  é um grupo de macros. NotFoundMsg  e  FoundMsg  são macros individuais dentro do grupo, cada macro consistindo em duas ações de macro.

Exemplo de grupo macro

Nota:  A  coluna Nome da Macro  fica oculta por padrão. Para exibir a  coluna Nome da Macro  , na  guia Design  , no  grupo Mostrar/Ocultar  , clique em  Nomes de Macro .

  1. Na  guia Criar  , no  grupo Outro  , clique em  Macro . Se este comando não estiver disponível, clique na seta abaixo do  botão Módulo  ou  Módulo de Classe  e clique em  Macro .

  2. Na  guia Design  , no  grupo Mostrar/Ocultar  , clique em  Nomes de Macro  para exibir a  coluna Nome da Macro  .

  3. Para cada comando que você deseja em seu menu de atalho personalizado:

    • Na  coluna Nome da Macro  , insira o texto que deseja exibir no menu de atalho (por exemplo, “Imprimir relatório” ou “Salvar”).

      Nota:  Para criar uma chave de acesso para que você possa usar o teclado para escolher o comando, digite um e comercial (&) antes da letra que deseja que seja a chave de acesso no nome do comando (por exemplo, "&Salvar"). Esta letra estará sublinhada no menu.
    • Na  coluna Ação  , selecione a primeira ação que você gostaria que ocorresse ao clicar no comando no menu de atalho.

    • Se houver mais ações que você deseja realizar ao selecionar este comando, adicione-as nas linhas subsequentes. Para cada ação subsequente, deixe a  célula Nome da Macro  em branco.

      Nota:  Para criar uma linha entre dois comandos de menu, digite um hífen (-) na  coluna Nome da Macro  entre os comandos de menu apropriados.
  4. Salve e nomeie a macro, por exemplo,   mcrShortcutMenuCommands .

A ilustração a seguir mostra um exemplo de grupo de macros para um menu personalizado ou menu de atalho.

Um grupo de macros de menu no modo Design

Etapa 2 para Access 2007: Crie uma macro que crie o menu

Esta etapa pode parecer redundante, mas para criar o menu de atalho do grupo de macros criado na Etapa 1, você deve criar uma segunda macro que contenha a   ação de macro AdicionarMenu . Essa macro às vezes é chamada de "macro de menu".

  1. Na  guia Criar  , no  grupo Outro  , clique em  Macro . Se este comando não estiver disponível, clique na seta abaixo do  botão Módulo  ou  Módulo de Classe  e clique em  Macro .

  2. Na primeira linha da macro, selecione  AddMenu  na  lista Ação  .

  3. Em  Action Arguments , na  caixa Nome do menu  , digite o nome do menu (por exemplo, "Comandos de relatório"). Este argumento não é obrigatório, mas é recomendado se, na Etapa 3, você planeja adicionar o menu a uma guia da faixa de opções (como a  guia Suplementos  de um formulário ou relatório). Se o menu for adicionado como um menu de atalho na Etapa 3, o  argumento Nome do Menu  será ignorado.

  4. Na  caixa Nome da macro do menu  , insira o nome da macro que você criou na Etapa 1.

  5. Salve e nomeie a macro, por exemplo,  mcrAddShortcutMenu .

A ilustração a seguir mostra um exemplo de macro de menu que cria o menu que criamos na Etapa 1.

Uma macro de menu no modo Design

Etapa 3 para o Access 2007: anexar o menu a um controle, formulário, relatório ou banco de dados

Dependendo de onde você deseja que o menu apareça, use um ou mais dos procedimentos a seguir.

  • Adicione o menu à guia Suplementos de um formulário ou relatório

    Use este procedimento se desejar que o menu apareça na  guia Suplementos  para um formulário ou relatório específico, conforme mostrado na ilustração a seguir:

    Guia Suplementos contendo um menu personalizado

    1. No Painel de Navegação, clique com o botão direito no formulário ou relatório onde deseja que o menu apareça e clique em  Modo Design .

    2. Na  guia Design  , no  grupo Mostrar/Ocultar  , clique em  Folha de propriedades .

    3. Selecione o objeto inteiro selecionando  Formulário  ou  Relatório  na lista na parte superior do painel de tarefas Folha de Propriedades.

    4. Na  guia Outro  da Folha de Propriedades, na  caixa de propriedades do Menu de Atalho  , digite o nome da macro que você criou na Etapa 2 (neste exemplo, “mcrAddShortcutMenu”).

      Na próxima vez que você abrir o formulário ou relatório, a  guia Suplementos  aparecerá na faixa de opções. Clique na guia para ver o menu.

      Para obter mais informações sobre técnicas de personalização da faixa de opções, como adicionar guias personalizadas ou ocultar as guias padrão, consulte o artigo  Criar uma faixa de opções personalizada no Access .

      A Faixa de Opções é um componente da interface de usuário do Microsoft Office Fluent.

  • Adicionar o menu como menu de atalho para um formulário, relatório ou controle

    Use este procedimento se desejar que o menu apareça ao clicar com o botão direito em um formulário, relatório ou controle específico, conforme mostrado na ilustração a seguir:

    Um menu de atalho simples

    1. No Painel de Navegação, clique com o botão direito no formulário ou relatório onde deseja que o menu de atalho apareça e clique em  Modo Design .

    2. Na  guia Design  , no  grupo Mostrar/Ocultar  , clique em  Folha de propriedades .

    3. Selecione o controle ou objeto ao qual deseja anexar o menu de atalho.

      Nota:  Para selecionar o objeto inteiro, selecione  Formulário  ou  Relatório  na lista na parte superior do painel de tarefas Folha de Propriedades.

    4. Na  guia Outro  da Folha de Propriedades, na  caixa de propriedades da Barra de Menu de Atalho  , digite o nome da macro que você criou na Etapa 2 (neste exemplo, “mcrAddShortcutMenu”).

  • Adicione o menu como um menu de atalho global

    Este procedimento substitui todos os menus de atalho padrão no banco de dados atual. Os menus de atalho personalizados anexados a formulários, relatórios ou controles específicos não são afetados.

    1. Clique no  botão Microsoft Office  e em  Opções de acesso .

    2. Na   caixa de diálogo  Opções de acesso , clique em Banco de dados atual .

    3. Em  Opções da faixa de opções e da barra de ferramentas , na  caixa Barra de menu de atalho  , digite o nome da macro que você criou na Etapa 2 (neste exemplo, “mcrAddShortcutMenu”).

  • Os menus de atalho personalizados substituem os menus de atalho padrão dos objetos aos quais estão anexados. Se você quiser manter determinados comandos do Access para usar nesses menus, use a  ação RunCommand  para colocar os comandos nos grupos de macros dos menus em que você os deseja.

  • Um menu de atalho personalizado anexado a um controle substitui quaisquer outros menus de atalho personalizados definidos no banco de dados. Um menu de atalho personalizado anexado a um formulário ou relatório substitui um menu de atalho global personalizado.

  • Quando você especifica uma macro de menu para um formulário ou relatório ou para o banco de dados, o Access executa essa macro de menu sempre que o formulário, relatório ou banco de dados é aberto. Se você fizer alterações na macro de menu ou no grupo de macros que define seus comandos enquanto o formulário, relatório ou banco de dados estiver aberto, deverá fechar o formulário, relatório ou banco de dados e reabri-lo para ver as alterações.

  • Para criar um submenu, siga a Etapa 1 para criar um grupo de macros separado que contenha apenas os comandos do submenu. Em seguida, siga a Etapa 1 novamente para definir os comandos do menu de nível superior. Adicione o submenu como um item no grupo de macros de nível superior usando a  ação de macro AdicionarMenu  . A ilustração a seguir mostra o grupo de macros de um menu que contém um submenu e, em seguida, mostra o menu de atalho resultante. A terceira linha no grupo de macros cria o  submenu Exportar para...  ( mcrSubMenu ).

    Um menu de atalho que contém um submenu

    Você pode criar vários níveis de submenus usando  ações AddMenu  nos grupos de macros para cada nível de menu. Certifique-se de fornecer um valor para o  argumento Nome do Menu  para cada  ação AddMenu  , caso contrário, o submenu aparecerá como uma linha em branco no menu de nível superior.

  • As condições de macro são suportadas apenas na macro do menu de nível superior. Em outras palavras, você pode usar uma condição em uma macro de menu para determinar se um determinado menu ou menu de atalho será exibido, mas apenas para os menus no nível superior. Você não pode usar condições para exibir ou ocultar comandos ou submenus nos menus. Você também pode usar uma condição para ocultar ou mostrar um menu de atalho personalizado ou um menu de atalho global.

  • Opcionalmente, a macro de menu criada na Etapa 2 pode fazer parte de um grupo de macros. Por exemplo, se você tiver vários menus de atalho para diferentes objetos ou controles, poderá criar um único objeto de macro que contenha todas as macros de menu necessárias. Certifique-se de exibir a  coluna Nome da macro  e digitar um nome exclusivo para cada macro. Na Etapa 3, use a seguinte notação para fazer referência à macro:  macrogroupname.macroname . Por exemplo,  mcrAddShortcutMenus.AddMenu2 .


Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet é uma plataforma de trabalho dinâmica que permite gerenciar projetos, criar fluxos de trabalho e colaborar com sua equipe.

SharePoint

SharePoint

SharePoint é um sistema de colaboração baseado na web que usa uma variedade de aplicativos de fluxo de trabalho, bancos de dados de “lista” e outros componentes da web, bem como recursos de segurança para dar controle ao trabalho conjunto de grupos empresariais.

Calendário Perpétuo 1.0.38/1.0.36

Calendário Perpétuo 1.0.38/1.0.36

Van Nien Calendar é um aplicativo de visualização de calendário em seu telefone, ajudando você a ver rapidamente a data lunisolar em seu telefone, organizando assim seu trabalho importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

O Microsoft Outlook é um aplicativo comercial e de produtividade desenvolvido pela Microsoft Corporation.

Clique para cima

Clique para cima

ClickUp é uma das plataformas de produtividade mais bem avaliadas para qualquer empresa. Grandes empresas como Google, Booking.com, San Diego Padres e Uber usam ClickUp para aumentar a produtividade no local de trabalho.

Visualizador PDF-XChange 2.5.322.10

Visualizador PDF-XChange 2.5.322.10

PDF se tornou um formato comumente usado para leitura, criação e envio de documentos de texto. Por sua vez, tem havido um aumento no número de programas utilizados para este tipo de documentação. PDF-XChange Viewer está entre um número crescente de visualizadores de PDF.

Apache Open Office

Apache Open Office

Apache OpenOffice oferece um conjunto completo de aplicativos Office que rivalizam com o Microsoft 365, especialmente em Excel, PowerPoint e Word. Ele permite que você gerencie seus projetos de forma mais eficaz e suporta diversos formatos de arquivo.

Baixar iTaxviewer 1.8.7

Baixar iTaxviewer 1.8.7

O software iTaxViewer é o software de leitura de arquivos XML mais popular atualmente. Este software é uma aplicação para leitura de declarações fiscais eletrónicas em formato XML da Direção Geral de Impostos.

Leitor de PDF Nitro

Leitor de PDF Nitro

Nitro PDF Reader é um prático editor de PDF que cobre todas as tarefas básicas que a maioria das pessoas realiza todos os dias com documentos PDF.

Leitor Foxit 12

Leitor Foxit 12

Foxit Reader é principalmente um leitor de PDF e também permite criar arquivos PDF, assiná-los, editá-los e adicionar anotações. Funciona em sistemas operacionais, existem plugins para diversos programas do pacote Microsoft Office.