Como Criar um Menu Personalizado no Excel Ribbon
Como criar um menu personalizado no Excel Ribbon, para uma única pasta de trabalho.
Neste artigo demonstraremos como chamar macros ou mesmo comandos do Excel, ocultar as outras guias de comandos e utilizar seus próprios ícones nesta personalização.
A Ribbon é a guia de opções do Excel aonde são realizados os procedimentos do Excel ou seus próprios procedimentos.
Editor de Ribbon no Excel
A partir da versão 2007 do Excel as pastas de trabalhos criadas são arquivos XML e para alterar a guia do Excel é necessário realizar baixar um sistema para a edição do mesmo.
- Para realizar o download clique neste link https://github.com/fernandreu/office-ribbonx-editor/releases/tag/v1.6
- Baixe a versão msi do sistema, ele é um instalador do sistema. Pode ser que precise de permissão de administrador para instalar.
- Após instalar procure o sistema pelo nome Office RibbonX Editor. Se preferir crie um ícone na área de trabalho ou na sua barra inferior do Windows.
Criando a primeira Ribbon Excel
- Clique no programa Office RibbonX Editor
- Clique no botão Open, nele você deve selecionar o arquivo que terá a sua faixa de opções criada/editada.
- A criação do ribbon é padronizada, são edições padrão de XML.
- Então, a forma mais fácil de criar uma guia personalizada é clicar em Insert->Sample XML->Excel – A Custom Tab.xml
- O sistema irá trazer o seguinte código XML
- O sistema terá criado um Ribbon padrão de exemplo. Clique em Salvar e depois feche o programa e abra a sua planilha. Este será o resultado.
- Então temos a guia chamada Contoso, nome padrão dest exemplo e temos também a criação de um grupo com a área de transferência, outro da Fonte, ambos padrão do Excel, e uma guia customizada, chamada Contoso Tools.
- Vamos entender os elementos do XML e como editá-los.
- customUI: Nome da ribbon criada.
- tab: é a guia criada na faixa personalizada de opções do Excel, nela que definimos o nome, o ícone, grupo e os botões do mesmo.
- id: customTab, é único, é o nome da Tab.
- label: Contoso, o nome que irá constar na ribbon.
- insertAfterMso: TabHome, identifica que será incluso após a guia Home. Para saber o nome de todos os objetos que há na Ribbon, use esta planilha da Microsoft, aonde estão todos elencados, filtre por Tab no caso das guias: Baixe a planilha
- group: são os grupos criados na guia.
- id: GroupClipboard, este campo é o nome do grupo que está sendo criado ou evocado. Neste caso está sendo chamado um grupo padrão, vide o download anterior com os objetos, procure por Group no CustomType da planilha ExcelControls disponibilizada no download acima para ver as outras guias padrões
- id: CustomGroup, este é um exemplo de um grupo customizado, se procurar na planilha disponibilizada, verá que este campo não consta, pois é um nome não padrão.
- label: Contoso Tools, é o nome que a guia personalizada CustomGroup receberá no Excel.
- button: é o botão que será criado, no exemplo é um botão criado dentro da guia personalizada CustomGroup que está dentro da sua hierarquia, ao ser acionado no Excel ele irá realizar uma ação.
- id: customButton1, o nome do botão, este valor é único.
- label: ConBold, o nome que irá aparecer no botão no Excel.
- size: large, o tamanho que o botão terá na sua ribbon Excel, no caso grande.
- onAction: conBoldSub, o nome do procedimento que será disparado pelo Excel no momento em que o botão é clicado. A criação deste procedimento será visto mais abaixo, ele é diferente de um evento padrão do VBA Excel.
- imageMso: Bold, esta propriedade define que será utilizada uma imagem padrão do Office para o ícone que constará na Ribbon. Neste link há uma lista com as imagens e os ícones padrão do Excel: https://bert-toolkit.com/imagemso-list.html, podendo também baixar esta planilha em que constam os ícones no menu: Baixe a planilha
- Cabe ressaltar que no exemplo criado os grupos mso <group idMso=”GroupEnterDataAlignment” />, <group idMso=”GroupEnterDataNumber” />, e <group idMso=”GroupQuickFormatting” />, não constam no Excel, parecendo ser uma falha do exemplo criado pelo sistema.
Customizar a Ribbon Excel com seus ícones e procedimentos
Com o exemplo criado e conforme a explicação acima você consegue já colocar o nome do procedimento do Excel que será disparado no momento em que for clicado no botão, iremos agora alterar o ícone, utilizando um ícone não padrão do Mso.
- Procure na internet um arquivo no tamanho 32×32, pode ser um png, este será o ícone que deverá usar abaixo.
- Clique no botão Insert-<Icons…
- Aonde está imageMso=”Bold” por exemplo, altere para image=”guiadoexcel”, coloque no lugar de guiadoexcel o nome do ícone que você incluiu, o nome é case sensitive, ou seja, diferencia maiúsculas e minúsculas, inclusive, isso é padrão para toda a Ribbon.
- Salve e feche o editor de ribbon Excel. Abra a pasta de trabalho Excel e veja o resultado.
Executando a sua procedure VBA pela Ribbon Excel
Para criar o procedimento no VBA do Excel você deve clicar no botão Generate Callbacks, aonde será criado então o código fonte para o evento click do botão Ribbon do Excel.
Ao clicar no botão são gerados os códigos para os eventos dos botões do VBA.
Os códigos acima são então criados, basta então chamar os procedimentos que desejar dentro destes eventos ou senão inserir diretamente os códigos fontes.
Para colocar o código fonte, faça o seguinte exemplo.
- No Excel pressione ALT+F11 e clique em Inserir->Módulo
- No módulo incluído clique duas vezes e cole o seguinte código
'Callback for customButton1 onAction Sub conBoldSub(control As IRibbonControl) MsgBox control.ID End Sub 'Callback for customButton2 onAction Sub conItalicSub(control As IRibbonControl) MsgBox control.ID End Sub 'Callback for customButton3 onAction Sub conUnderlineSub(control As IRibbonControl) MsgBox control.ID End Sub
No código acima foi incluso apenas o código MsgBox control.ID para retornar o ID do botão, mas pode ser chamado qualquer outro código no botão.
Download da planilha com Ribbon Excel
Baixe a planilhaAbraço
Marcos Rieper
Curso Excel Completo – Do Básico ao VBA
Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo: