Dicas de VBA – Personalizar o Friso I
Por Jorge Paulino para o Pplware
Num artigo anterior referi como executar uma macro usando uma determinada combinação de teclas. É uma funcionalidade muito prática, pois permite muito rapidamente e facilmente executar um determinado código. No entanto nem sempre é a melhor solução, uma vez que não é uma opção visível, ou seja, o utilizador nem sempre sabe que essa opção está disponível.
Uma solução muito interessante é personalizar o friso (ribbon), colocando à disposição do utilizador as diversas opções possíveis. Além de simples implementação, é uma solução visualmente muito agradável. A personalização do friso pode ser feita individualmente para cada ficheiro ou para todos os ficheiros. Neste artigo iremos ver como fazer para apenas um ficheiro.
Existem diversos programas que permitem efectuar a personalização do friso, mas neste artigo irá ser utilizado o Custom UI Editor for Microsoft Office, que além de gratuito, é muito simples de utilizar.
Após instalar o programa fica disponível um simples editor.
Na opção File - Open escolhemos o ficheiro de Excel que queremos personalizar o friso. Caso o ficheiro ainda não tenha qualquer personalização, adicionamos, usando o botão direito do rato, uma UI Part (User Interface Part), como mostra a seguinte imagem.
Será então adicionado um ficheiro XML com o nome customUI14.xml. Usando o menu Insert – Sample XML escolhemos a opção Custom Tab. Será então adicionado o código XML que será a definição do nosso friso (ribbon).
Neste código (previamente formatado/alinhado), podemos verificar alguns elementos que constituem o novo separador: Tab, Group e um Button.
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon startFromScratch="false"> <tabs> <tab id="customTab" label="Custom Tab"> <group id="customGroup" label="Custom Group"> <button id="customButton" label="Custom Button" imageMso="HappyFace" size="large" onAction="Callback" /> </group> </tab> </tabs> </ribbon> </customUI>
Podemos a partir daqui alterar de acordo com o pretendido.
Podemos ainda adicionar imagens que serão depois utilizadas pelos diversos elementos. Para adicionar imagens podemos usar a opção Insert – Icons e escolhemos as imagens que queremos. Neste exemplo foram utilizadas duas imagens com a resolução de 48x48.
Existem duas formas de definir a imagem, cujo nome será o nome da imagem adicionada:
- imageMso –nome fixo de imagens já disponíveis no sistema
- image – nome da imagem adicionada
Após pequenas alterações, podemos criar um simples exemplo, tendo em atenção que o ID não pode ser repetido. Atenção ainda à designação definida no atributo onAction que será o nome da macro e ao nome da imagem que foi definida.
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon startFromScratch="false"> <tabs> <tab id="customTab" label="VBTuga"> <group id="customGroup" label="Custom Buttons"> <button id="customButton1" label="Aceitar" image="accept" size="large" onAction="btnAccept" /> <button id="customButton2" label="Data/Hora" image="clock" size="large" onAction="btnData" /> </group> </tab> </tabs> </ribbon> </customUI>
Na toolbar existe uma opção para validar o código XML. É importante executá-la sempre que se fazem alterações, antes de gravar, de modo a verifica se tudo está correcto, caso contrário, o novo friso não irá ficar visível.
Na última opção da pequena toolbar deste editor, existe um botão para gerar as chamadas (Generate Callbacks). Esta opção irá então gerar o código de deveremos colocar num módulo do nosso ficheiro de Excel.
Podemos agora copiar o código VBA e salvar as alterações.
Abrimos o ficheiro alterado no Excel e colocamos o código copiado num módulo. Neste exemplo, será apenas adicionada uma mensagem:
Sub btnAccept(control As IRibbonControl) MsgBox "Aceitar usando o botão: " & control.ID, vbInformation End Sub
Sub btnData(control As IRibbonControl) MsgBox "Data e Hora: " & Now, vbInformation End Sub
E o resultado final é o seguinte:
Este é apenas um pequeno artigo de introdução à personalização do friso no Excel, mas existem inúmeras alterações que podemos fazer e tornar desta forma os ficheiros mais profissionais/funcionais. É possível também usar diferentes controlos no friso, personalizar o Backstage View, criar menus de contexto (baseados na selecção), etc.
Algumas destas opções serão abordadas em próximos artigos.
Autor: Jorge Paulino Página Pessoal: http://www.jorgepaulino.com
Este artigo tem mais de um ano
Muito obrigado, Jorge pelo teu fantástico contributo.
Espero que em breve te dediques a umas boas Dicas de Visual Basic.net e bases de dados.
Continua, esperamos por mais.
estou a gostar muito destes novos tutoriais para VBA.
Obrigado Jorge, obrigado pplware.
Fico à espera pelas próximas dicas 😉
Gostei. Uma das razões porque ainda não mudei para o Office 2007 é devido à não existência de um editor de toolbars como existia nas versões anteriores.
Já agora, podias ter deixado um link para a aplicação.
Posso incluir em próximos exemplos uma demo 😉
Existe uma ferramentra chamada MontaRibbons que acho muito boa, quem desejar conhece-la é só acessar http://www.usandoaccess.com.br