Como Criar Menus de Sistema no Excel – Ribbons

Neste artigo você aprenderá como criar menus de sistema no Excel com Ribbons, design de planilha com aparência de sistemas, alterando as guias.

Veja passo-a-passo como criar o menu abaixo no Excel:

menus Excel personalizados ribbon guia personalizada 1

Como Instalar o Editor de Menus Excel Ribbon X Editor

O Ribbon X Editor é um editor de menus Microsoft Office de código aberto e gratuito, que você pode baixar no github.

Veja como instalar.

Para instalar o Ribbon X Editor baixe ele no link: https://github.com/fernandreu/office-ribbonx-editor/releases/tag/v1.6

Selecione esta opção abaixo no download:

Criar ribbon no Excel
Depois execute e clique em next, finish até concluir a instalação.

Ele ficará instalado e ao clicar no ícone abrirá este programa:

menus Excel personalizados ribbon guia personalizada 2

Criando um menu personalizado no Excel

Para usar o menus personalizados no Excel você deve abrir a pasta de trabalho aonde irá o incluir.

Inicialmente salve o seu arquivo Excel como XLSM ou XLSB, arquivos habilitados para macro no Excel.

Então no Office Ribbon X Editor clique em File e selecione o arquivo.

menus Excel personalizados ribbon guia personalizada 3

Agora você precisa criar o código no qual irá incluir a guia, grupos, botões e outros componentes.

A forma mais fácil é começar à partir de um exemplo.

Para isso clique em Insert->Sample XML->Excel – A Custom Tab

menus Excel personalizados ribbon guia personalizada 4

Ao fazer isso será criado o código abaixo, já pronto e funcionando, com alguns exemplos e toda a estrutura principal.

menus Excel personalizados ribbon guia personalizada 5

No código Ribbon criado nós temos as tags xml que abrem e fecham, note sempre a árvore <custoUI> e </customUI> por exemplo. O mesmo se repete pra ribbon, tab, group e button, sempre abrindo e fechando.

Salve e abra o Excel pra ver o que foi criado pelo exemplo.

menus Excel personalizados ribbon guia personalizada 6

Note que foi criada a Guia Contoso, aonde temos então várias funcionalidades do próprio Excel que foram criados pelo group idMso, e outra criada pelo group id normal.

Veja que ali temos uma guia criada: Contoso e três grupos criados: Área de Transferência, Fonte e Contoso Tools.

Nós iremos focar em criar botões de sistema como no Contoso Tools, mas chamando nossos próprios código VBA.

Criando Guias e Botões de Sistema no Excel

A primeira etapa será inserirmos os ícones dos botões.

Para isso baixe os ícones em algum site como o flaticon.com, como visto abaixo.

Basta pesquisar e baixar com o tamanho 64 pixels.

menus Excel personalizados ribbon guia personalizada 7

Em seguida no Ribbon X Editor clique em Inser Icons, clicando com o botão direito sobre o ícone da ribbon.

menus Excel personalizados ribbon guia personalizada 8

Selecione então todos os ícones que baixou, eles irão ser importados para o arquivo.

menus Excel personalizados ribbon guia personalizada 9

Após isso podemos inserir nossos próprios códigos e mudar os elementos.

Conheça os elementos e como mudar:

  • id: Código do componente, não pode se repetir, pode ser qualquer texto.
  • label: Descrição do componente, irá aparecer no Excel.
  • onAction: Ação que será executada, é o procedimento VBA que será chamado.
  • image: Nome da imagem que será usado, como banco, incluircontas, fornecedores, basta dar um F2 na imagem e copiar o texto. Atenção é case sensitivte, ou seja, tem que escrever maiúsculo e minúsculo caso assim esteja.
menus Excel personalizados ribbon guia personalizada 10

Com isso criamos o código:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
	<ribbon startFromScratch="true">
		<tabs>
			<tab id="tabSistema" label="Contas à pagar" insertAfterMso="TabHome">
				<group id="grupoCadastro" label="Cadastros">
					<button id="bBanco" label="Bancos" size="large" onAction="acaoBancos" image="banco" />
					<button id="bContas" label="Contas" size="large" onAction="acaoContas" image="incluircontas" />
					<button id="bFornecedor" label="Fornecedores" size="large" onAction="acaoFornecedores" image="fornecedores" />
				</group>
			</tab>
		</tabs>
	</ribbon>
</customUI>

Com isso nós já temos então a nossa própria guia no Excel.

menus Excel personalizados ribbon guia personalizada 11

Veja como criar novas guias agora, incluímos novas como pode notar abaixo, tem o dropdown com os itens e botões.

No caso do dropdown o código incluído foi:

                <dropDown id="dropDownRelatorios" label="Relatórios" onAction="dropDownRelatoriosDiversos">
                    <item id="itemBancos" label="Bancos" />
                    <item id="itemContas" label="Contas" />
                    <item id="itemFornecedores" label="Fornecedores" />
                </dropDown>

Temos assim um menu de sistema com uma lista aonde pode selecionar os itens que serão chamados.

Após isso clique em Validate para validar o código, que não pode ter nenhum id repetido e também não pode faltar as barras para fechar os itens.

Se der tudo certo irá aparecer a mensagem Custom UI XML well formed, senão aparecerá o erro abaixo dela e poderá identificar o que houve para poder corrigir.

menus Excel personalizados ribbon guia personalizada 12

O nosso código completo ficou assim:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
	<ribbon startFromScratch="true">
		<tabs>
			<tab id="tabSistema" label="Contas à pagar" insertAfterMso="TabHome">
				<group id="grupoCadastro" label="Cadastros">
					<button id="bBanco" label="Bancos" size="large" onAction="acaoBancos" image="banco" />
					<button id="bContas" label="Contas" size="large" onAction="acaoContas" image="incluircontas" />
					<button id="bFornecedor" label="Fornecedores" size="large" onAction="acaoFornecedores" image="fornecedores" />
				</group>
				<group id="grupoLancamento" label="Lançamentos">
					<button id="bContasPagar" label="Contas a pagar" size="large" onAction="acaoContasaPagar" image="contasapagar" />
					<button id="bIncluirValor" label="Entrada de valor" size="large" onAction="acaoEntradaValor" image="incluirvalor" />
					<button id="bPagar" label="Pagar" size="large" onAction="acaoPagar" image="pagar" />
				</group>				    
				<group id="grupoRelatorios" label="Relatórios">
					<button id="bRelatorioContasaPagar" label="Contas a pagar" size="large" onAction="acaoRelatorioContasaPagar" image="relatoriocontasapagar" />					
					<button id="bRelatorioSaldo" label="Saldo de contas" size="large" onAction="acaoRelatorioSaldo" image="saldocontas" />
					<button id="bRelatorioSituacao" label="Situação contas" size="large" onAction="acaoRelatorioSituacao" image="situacaocontas" />
                    <dropDown id="dropDownRelatorios" label="Relatórios" onAction="dropDownRelatoriosDiversos">
                        <item id="itemBancos" label="Bancos" />
                        <item id="itemContas" label="Contas" />
                        <item id="itemFornecedores" label="Fornecedores" />
                    </dropDown>
                    <separator id="separator1"/>
                    <button id="bDashboard" label="Dashboard" size="large" onAction="acaoDashboard" image="dashboard" />					
                    <button id="bAnaliseGeral" label="Análise Geral" size="large" onAction="acaoAnaliseGeral" image="dinheiro" />
                </group>
				<group id="grupoConfiguracoes" label="Configurações">
					<button id="bconfiguracoes" label="Configurações" size="large" onAction="acaoConfiguracao" image="configuracoes" />
				</group>
			</tab>
		</tabs>
	</ribbon>
</customUI>

Após isso clique em Generate Callbacks, que são as chamadas, os procedimentos VBA de cada componente.

Copie este texto todo.

menus Excel personalizados ribbon guia personalizada 13

Abra o Excel e veja que já temos então o nosso menu:

menus Excel personalizados ribbon guia personalizada 14

Vamos continuar e colocar o código.

Criando Menus de Sistema no Excel

Agora iremos colocar os códigos que os botões irão executar.

Para isso abra o VBE, pressionando ALT+F11 ou na Guia Desenvolvedor em Visual Basic.

Clique em Inserir->Módulo e no módulo criado cole os Callbacks:

Após isso basta você colocar os códigos VBA, que podem ser chamadas de outros procedimentos ou diretamente ali.

Por exemplo, criamos algumas planilhas e mudamos o nome interno delas.

No exemplo abaixo, chamamos a planilha bancos usando o .select, então ao clicar no botão acaoBancos, o Excel irá mudar de planilha selecionando a planilha bancos.

Outro ponto um pouco diferente é o código do dropDown, por isso segue abaixo um exemplo de como fazer:

Nele usamos o Select Case pra saber qual o id que foi selecionado e então fazer algo, como por exemplo selecionar a planilha.

Veja o código pronto:

'Callback for bBanco onAction
Sub acaoBanco(control As IRibbonControl)
    Banco.Select
End Sub

'Callback for bContas onAction
Sub acaoContas(control As IRibbonControl)
    Contas.Select
End Sub

'Callback for bFornecedor onAction
Sub acaoFornecedor(control As IRibbonControl)
    Fornecedor.Select
End Sub

'Callback for bContasaPagar onAction
Sub acaoContasaPagar(control As IRibbonControl)
    ContasaPagar.Select
End Sub

'Callback for bIncluirValor onAction
Sub acaoEntradaValor(control As IRibbonControl)
    EntradadeValor.Select
End Sub

'Callback for bPagar onAction
Sub acaoPagar(control As IRibbonControl)
    Pagar.Select
End Sub

'Callback for bRelatorioContasaPagar onAction
Sub acaoRelatorioContasaPagar(control As IRibbonControl)
    RelatorioContasapagar.Select
End Sub

'Callback for bRelatorioSaldo onAction
Sub acaoRelatorioSaldo(control As IRibbonControl)
    RelatorioSaldodeContas.Select
End Sub

'Callback for bRelatorioSituacao onAction
Sub acaoRelatorioSituacao(control As IRibbonControl)
    relatoriosituacaocontas.Select
End Sub

'Callback for dropDownRelatorios onAction
Sub dropDownRelatoriosDiversos(control As IRibbonControl, id As String, index As Integer)
    Select Case id
        Case "itemBancos"
            RelatorioBanco.Select
        Case "itemContas"
            RelatorioContas.Select
        Case "itemFornecedores"
            RelatorioFornecedor.Select
    End Select
End Sub

'Callback for bDashboard onAction
Sub acaoDashboard(control As IRibbonControl)
    Dashboard.Select
End Sub

'Callback for bAnaliseGeral onAction
Sub acaoAnaliseGeral(control As IRibbonControl)
    AnaliseGeral.Select
End Sub

'Callback for bConfiguracoes onAction
Sub acaoConfiguracao(control As IRibbonControl)
    Configuracoes.Select
End Sub

E com isso temos o sistema completo, veja agora como tirar as guias padrões do Excel.

Remover Guias Padrões do Excel

Para exibir apenas a sua guia, removendo então as guias padrões do Excel você tem então que colocar o seguinte código ao topo:

	<ribbon startFromScratch="true">

Veja que temos ali na ribbon que estava <ribbon> a inclusão de startFromScratch=”true”, fazendo com isso que tenhamos apenas as guias que criarmos, lembrando que pra criar mais guias, você precisa copiar a estrutura <tab> e incluir nova abaixo, podendo criar assim várias se desejar.

Download planilha menus profissionais no Excel

Clique no botão abaixo para realizar o  download da planilha de TextoDivisão Excel, com exemplo de dados:

Baixe a planilha


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel