terça-feira, 30 de setembro de 2014

Introdução as Ribbons

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.
Informe seu e-mail...

Sobre o autor: Anderson Tonetto dos Santos
Anderson é especialista em Planilhas Eletrônicas e Administração de Sistemas. Trabalha com tecnologia há mais de 10 anos, e nos últimos 6 anos atua como Consultor e Instrutor de Excel. Fundador da Tonetto Excel, site referência no conteúdo de Planilhas e Macros, com mais de 3 milhões de acessos nos últimos 5 anos. Também é co-fundador da Solução Contábil, empresa especializada em Inteligência Informacional para Contabilidade e Data Analytics.