Como Criar um Menu Personalizado na Faixa de Opções do Excel com VBA

Para criar um menu (guia) personalizado que executa macros diretamente na faixa de opções, use um editor de XML de faixa de opções, como o gratuito Office RibbonX Editor, para inserir um código customUI14.xml dentro do arquivo .xlsm, definindo os elementos tab, group e button com o atributo onAction apontando para uma Sub do VBA.

Você já quis dar para quem usa a sua planilha uma guia própria na faixa de opções, com botões que já rodam as macros mais usadas, em vez de obrigar a pessoa a abrir o Editor VBA ou procurar a macro certa numa lista genérica?

Sem customizar a faixa de opções, as macros ficam escondidas atrás de atalhos de teclado, de botões soltos na planilha ou de uma lista de macros pouco intuitiva, o que passa uma impressão amadora e dificulta a adoção por quem não é tão familiarizado com VBA.

Neste artigo iremos mostrar por que o VBA sozinho não customiza a faixa de opções, a ferramenta gratuita necessária para isso, e o passo a passo completo para criar uma guia personalizada com botões que executam suas macros.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

Por que o VBA sozinho não customiza a faixa de opções

A faixa de opções do Excel é descrita internamente por um arquivo XML guardado dentro do próprio pacote .xlsm (que, tecnicamente, é um arquivo compactado). O VBA não tem comandos nativos para editar essa estrutura XML — por isso, criar uma guia ou grupo totalmente personalizado, com ícones e posição controlados, exige editar esse XML diretamente, usando uma ferramenta externa ao Excel.

A ferramenta necessária: Office RibbonX Editor

O Office RibbonX Editor é um programa gratuito e de código aberto (sucessor do antigo Custom UI Editor for Microsoft Office) que abre arquivos .xlsm, .xlam, .docm e similares como se fossem um pacote de XML, permitindo inserir e editar a parte responsável pela faixa de opções sem precisar descompactar nada manualmente.

Passo a passo: inserindo o XML personalizado

Abra o arquivo .xlsm dentro do Office RibbonX Editor. No menu, escolha a opção para inserir uma Office 2010+ Custom UI Part (o formato usado desde o Excel 2010, compatível com as versões atuais). Isso cria uma área de edição de XML vazia, pronta para receber a estrutura da sua guia personalizada.

Exemplo de XML de uma guia personalizada

O código abaixo cria uma guia chamada “Minhas Macros”, com um grupo “Relatórios” contendo um botão que executa a macro GerarRelatorio:

<customUI xmlns=”http://schemas.microsoft.com/office/2009/07/customui”>
  <ribbon>
    <tabs>
      <tab id=”minhaGuia” label=”Minhas Macros”>
        <group id=”grupoRelatorios” label=”Relatórios”>
          <button id=”botaoGerar” label=”Gerar Relatório” onAction=”GerarRelatorio” size=”large” imageMso=”FileSave” />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

O atributo imageMso usa um dos ícones já embutidos no próprio Office (nesse caso, o ícone de salvar), evitando a necessidade de fornecer uma imagem própria.

Criando a macro callback correspondente

O nome informado em onAction precisa bater exatamente com uma Sub existente num módulo VBA do arquivo, e essa Sub precisa aceitar um parâmetro do tipo IRibbonControl, mesmo que não vá usá-lo:

Sub GerarRelatorio(control As IRibbonControl)
    MsgBox “Relatório gerado com sucesso!”
End Sub

Salve o XML no Office RibbonX Editor, feche o programa e abra o arquivo no Excel — a guia “Minhas Macros” já aparece na faixa de opções, com o botão pronto para chamar a macro.

Alternativa mais simples, sem editar XML

Se você só precisa organizar macros já existentes num grupo próprio, sem se preocupar com ícone personalizado ou posição exata, dá para fazer isso direto pelo Excel, sem nenhuma ferramenta externa: vá em Arquivo > Opções > Personalizar Faixa de Opções, clique em Nova Guia (ou Novo Grupo dentro de uma guia existente), e depois arraste comandos de Macros para dentro desse grupo, usando o menu suspenso Escolher comandos em: Macros. Essa via nativa é mais rápida, mas não permite ícones próprios nem controle fino de layout como o XML.

Erros comuns

O erro mais frequente é um XML mal formado (uma tag sem fechar, por exemplo), que faz o Excel simplesmente ignorar a customização, sem avisar claramente o motivo. Outro erro comum é o nome do onAction não bater exatamente com o nome da Sub no VBA (incluindo maiúsculas e minúsculas), ou a Sub estar com a assinatura errada, sem o parâmetro control As IRibbonControl. Por fim, lembre-se de sempre salvar o arquivo como .xlsm (habilitado para macro) — num .xlsx comum, tanto a macro quanto o XML customizado seriam descartados.

Disponibilidade

A customização da faixa de opções via XML funciona no Excel para Windows a partir da versão 2007, incluindo o Microsoft 365. No Mac, o suporte a essa customização via RibbonX é mais limitado. O Excel Online e o Google Sheets não suportam esse tipo de customização de interface.

Perguntas frequentes

Preciso de outro programa além do Excel para isso?

Sim. O VBA não edita a estrutura XML da faixa de opções sozinho — é necessário um editor externo, como o gratuito Office RibbonX Editor, para inserir e editar essa parte do arquivo.

Dá para customizar a faixa de opções só com VBA, sem editar XML?

Não de forma completa. É possível organizar macros num grupo ou guia nova usando o recurso nativo em Arquivo > Opções > Personalizar Faixa de Opções, mas sem controle de ícone personalizado nem posição fina — para isso, o XML via RibbonX Editor é necessário.

O menu personalizado funciona se eu enviar o arquivo para outra pessoa?

Sim, desde que o arquivo permaneça em formato .xlsm com macros habilitadas — o XML da faixa de opções personalizada fica salvo dentro do próprio arquivo e viaja junto quando ele é compartilhado ou aberto em outro computador.

Veja também: Guias da Faixa de Opções do Excel, que explica os comandos das guias padrão, e Como Acessar o Editor VBA no Excel e Inserir um Módulo.

Compartilhe ou Comente

Se você curtiu esse artigo aonde mostramos como criar uma guia personalizada na faixa de opções do Excel usando XML e o Office RibbonX Editor, com botões que executam macros VBA diretamente, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.

Sua planilha já tem uma guia própria na faixa de opções, ou as macros ainda ficam escondidas numa lista genérica? Prefere usar ícones do próprio Office ou uma imagem personalizada nos botões? Conta para nós nos comentários!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *