Ribbon é a interface gráfica de menus que a Microsoft
começou a utilizar a partir do Office 2007, e representa a principal
substituição dos menus e barra de ferramentas das versões anteriores.
A ampla região retangular, na parte superior do Excel é
conhecida como Faixa de Opções. Ela
contém a Barra de Título, a Barra de Ferramentas de Acesso Rápido e as Guias.
O Office 2010 possui também uma área chamada Backstage View (menu Arquivo no Office
2010 ou Botão Office no Office 2007) que é mostrado abaixo:
O similar à Visão Backstage no Office 2007 é o Botão
Office, mostrado abaixo:
Podemos criar Ribbons personalizadas para nossos
aplicativos, proporcionando uma aparência e navegação de ótima qualidade.
Veja abaixo um exemplo de uma ribbon totalmente
personalizada que desenvolvi sob medida para uma empresa:
Mas, infelizmente, personalizar os Menus, Visão Backstage,
Botão Office e Ribbons não é uma tarefa tão simples.
O objetivo deste artigo é mostrar como funciona a criação
de um Ribbon personalizada e as ferramentas para fazer isso, de modo que
seus aplicativos fiquem com uma aparência profissional e protegidos contra
alterações indesejadas.
Para começarmos, primeiro devemos entender algumas coisas
importantes.
Documentos
Office são arquivos compactados
Você já reparou que documentos do Office 2007/10 com o
mesmo volume de informação de um do 2003 são significativamente menores? Isso
ocorre por causa do novo formato de documento do Office 2007/10, que são
arquivos XML zipados. Para provarmos isso, clique com o botão direito sobre um
formato de documento do Office 2007/10 no Explorer, clique em Abrir com e, em seguida, Escolher programa padrão...:
Na janela que aparecer, desabilite a opção Sempre
usar o programa selecionado para abrir este tipo de arquivo (senão
todas as vezes que você abrir o tipo de arquivo desejado, ele não será aberto
pelo sua aplicação padrão Office correspondente) e, na lista de programas,
selecione um compactador/descompactador de arquivos, que no meu caso é o
WinRAR. Em seguida, clique em OK:
O resultado se encontra na figura abaixo:
Observe que temos uma estrutura de pastas dentro do
arquivo do documento Office. Dependendo da aplicação, do tipo de extensão e
outros fatores, a estrutura de pastas e arquivos contidos pode ser diferente.
O Office tem assistente para montar as ribbons ?
Surpreendentemente a Microsoft lançou o Office 2007 sem
um assistente para isso, obrigando a todos a ter um mínimo de conhecimento de
XML, que é a linguagem de programação usada para montar ribbons.
O Office 2010 vem com um assistente, mas que ainda surpreende
por ser muito básico.
Para
personalizarmos ribbons e menus nos documentos Office, devemos criar um arquivo
chamado customUI.xml e/ou customUI14.xml dentro
dessa estrutura de pastas. Esses arquivos contém as informações que uma
aplicação Office irá ler quando montará os menus e os ribbons. É importante
observar que:
Se
existe apenas o arquivo customUI.xml, tanto a aplicação Office 2007
e 2010 personalizarão os menus e ribbons de acordo com informações desse
arquivo.
Se
existe apenas o arquivo customUI14.xml, somente a aplicação Office
2010 personalizará os menus e ribbons de acordo com informações desse arquivo
(lembre-se que o 14 significa que a versão do Office 2010 é a 14). O documento abrirá com menus e ribbons do modo padrão em aplicações do Office
2007.
Se
existem ambos arquivos customUI.xml e customUI14.xml,
significa que quando o documento for aberto por uma aplicação Office 2007, os
ribbons e menus serão personalizados de acordo com as informações do arquivo customUI.xml e
se aberto por uma do Office 2010, serão personalizados de acordo com
informações do customUI14.xml.
O
que eu devo saber sobre XML?
O XML tem semelhanças com HTML, sendo a principal, o fato
de utilizarem tags (palavras-chaves e atributos). Cada tag consiste em duas
partes: uma que inicia e outra que fecha.
Exemplo: <inicia
tag> ... </fecha tag>
Diversos controles foram criados pela Microsoft para
personalizar a Faixa de Opções. Tem controles para montar a arquitetura XML
adotada, alterar as configurações do Office e desenhar as ribbons.
Cada um dos controles tem que ser alocado em um lugar
apropriado, dentro de uma arquitetura, para que o interpretador (esquema) faça
a tradução de forma correta.
Preste bastante atenção na arquitetura apresentada abaixo
que deve começar a se familiarizar:
Agora, observe bem, a figura abaixo com a distribuição
das tags e seus respectivos controles:
Veja como fica a estrutura sem a representação gráfica:
Cada controle vem com atributos para configuração. Como exemplo,
no controle botão <button> podemos atribuir o seu tamanho, legenda,
imagem, torná-lo visível, desabilitado e outros. Um dos atributos obrigatórios,
em diversos controles, é o id, que é uma identificação exclusiva que devemos
dar ao controle, para ser identificado, por exemplo, quando clicamos nele para
executar uma ação.
Observe a XML abaixo com esses atributos, em vermelho,
inseridos em algumas tags:
<customUI xmlns="http://schemas.microsoft.com/office/200x/xx/customui">
<commands>...</commands>
<ribbon startFromScratch="true">
<qat><documentControls> ... </documentControls></qat>
<officeMenu> ... </officeMenu>
<tabs>
<tab id = "tab1" label = "Minha Ribbon">
<group id = "grp1" label = "Meu Grupo">
<button id = "button01" imageMso = "HappyFace" label = "Clique Aqui"/>
</group>
</tab>
</tabs>
</ribbon>
<backstage> ... </backstage>
</customUI>
Veja como ficaria o resultado deste exemplo:
O
Custom UI Editor
Para
gerenciar a criação e alteração desses dois importantes arquivos dentro dos
documentos Office, sugiro o uso do Custom
UI Editor, que é gratuito, leve, livre de vírus (projeto open source) e
pode ser obtido no link http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2006/05/26/customuieditor.aspx.
Esta página mostra como se personalizar menus e ribbons com o auxílio desse
software, e os exemplos serão na aplicação Excel, mas o mesmo pode ser feito
com outras aplicações Office.
Agora
vou ensinar você a criar sua própria ribbon, e vou tomar o exemplo citado
acima.
Depois
de instalado, abra o Custom UI Editor e clique no ícone do amarelo para abrir
um documento:
Na
janela que aparecer, vá até o caminho do documento Office que deseja alterar o
Ribbon e clique em Abrir:
O
resultado será:
Agora,
vamos criar o arquivo que conterá as instruções na linguagem XML dentro do
documento Office. Como queremos que as instruções sejam válidas tanto para as
aplicações Office 2007 e 2010, devemos selecionar a opção Office 2007 Part para criar o arquivo customUI.xml. Para tal, basta clicar com o botão direito do mouse no documento e com o esquerdo nessa opção, como mostrado abaixo:
Observe
que o arquivo foi criado:
Devemos
escrever nosso código no lado direito da divisória. Vamos experimentar o código
abaixo:
<customUI
xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab id="tab1" label="Minha Ribbon">
<group id="grp1" label="Meu Grupo">
<button id="button01" label="Clique Aqui" size="large" onAction="Teste" imageMso="HappyFace" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
A tela do editor ficará como mostrado abaixo:
Observe
a hierarquia dessa estrutura XML, é bem intuitiva. Dentro dos ribbons, entra-se
no grupo das tabs (menus). Entra-se, especificamente na tab (menu) cujo id (identificador) é tab1, o atributo label é o nome que aparecerá na Faixa
de Opções do Excel. Dentro desse menu, cria-se um novo grupo de identificador grp1
e seu label (texto) será Meu
Grupo.
Em
seguida, dentro desse grupo, cria-se um botão cujo identificador é button01,
seu label (texto) será Clique Aqui, seu tamanho (size) será grande,
porque é atribuído large a seu valor, e, ao clicar nele,
será executada uma macro chamada Teste (por causa do atributo onAction)
e a imagem do ícone que irá respresenta-lo será de código HappyFace.
Escrever
um código como esse do zero normalmente não é simples. A melhor forma de personalizar
ribbons é pegar exemplos prontos e alterar/duplicar os blocos de código
desejados.
Existe
uma lista compreensiva que dita qual é o código de cada um dos menus das
aplicações do Office, bem como seus grupos, botões e imagens.
Para
saber a lista de botões, grupos e menus das aplicações Office 2007: http://www.microsoft.com/download/en/details.aspx?DisplayLang=en&id=3582
Para
saber a lista de botões, grupos e menus das aplicações Office 2010: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6627
Lista
de imagens (ícones) para o Excel 2007: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=11675
Lista
de imagens (ícones) para o Excel 2010: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21103
Voltando
ao exemplo, clique no ícone de salvar:
Em seguida, abra o documento Office. Note que
a nova guia foi criada:
O botão ainda não possui funcionalidade. Para atribuirmos uma função à
ele, crie um módulo com o código:
Sub Teste(control As IRibbonControl)
MsgBox "Olá!"
End Sub
Observe que é necessária a declaração do Procedimento incluindo o parâmetro (control
As IRibbonControl).
Ao clicar no botão, teremos então como resultado:
Observação: Se você tentar criar uma pasta na estrutura do arquivo do
Excel (ou PowerPoint ou Word) de forma a imitar os arquivos criados pelo Custom UI Editor, não
será mostrado o ribbon personalizado. Isso acontece porque é necessário alterar
alguns relacionamentos dentro de outros arquivos da estrutura XML do documento
Office, tarefa que o Custom UI Editor se encarrega de fazer automaticamente,
tendo então assim mais um motivo para ser utilizado.
Bem,
isso é o básico que você precisa saber sobre criação e edição de ribbons. Com
este conhecimento você poderá desenhar seus menus personalizados e aplicar em
suas planilhas.
Gostou deste artigo? Então compartilhe com seus amigos e assine para RECEBER MAIS DICAS DE EXCEL POR E-MAIL. Fique a vontade para deixar seu comentário.