AS EMPRESAS ESTÃO "DESESPERADAS" POR ESTE TIPO DE PROFISSIONAL... - VOCÊ É UM DELES?
MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI - O Conhecimento que Vira Dinheiro - CLIQUE AQUI
| « Anterior | Δ Página principal | ¤ Índice | Próxima » |
| Programando o RibbonX no Excel 2007 Autor: Robert Friedrick Martim |
|||
|---|---|---|---|
| Lição 16 - Conteúdos Dinâmicos | |||
Até o momento vimos vários formas de personalizar a Faixa de Opções, contudo ainda não vimos todas as formas de fazê-lo. Suponhamos o seguinte cenário: existe uma determinada interface que deve ser somente mostrada quando algo é clicado (como as guias sensíveis ao contexto). Em situações como estas, nós queremos criar o conteúdo dinâmicamente para que o mesmo seja mostrado somente nas situações determinadas. Obtemos tal resultado utilizando o atributo getContent. O valor do atributo é, na verdade, um callback que deve ser executado para determinar o conteúdo. Vejamos um exemplo simples de como isso pode ser feito. A figura abaixo mostra a nossa guia com um menu sem conteúdo:
O conteúdo do menu deve ser mostrado quando a célula A1 da primeira planilha for diferente de vazio. Aqui, teremos dois trabalhos distintos com XML:
Vamos iniciar pelo XML que criará a guia, grupo e botão conforme a figura anterior: <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="setRib"> <ribbon startFromScratch="false"> <tabs> <group <dynamicMenu id="idDMnu" </group> Note o atributo getContent do menu dinâmico no XML acima. É este callback que será utilizado para escrever o conteúdo dinamicamente. Note também o atributo onLoad. Aqui, utilizamos tal atributo para podermos invalidar a Faixa de Opções e forçar a chamada do callback conteudoDin. O próximo passo requer a criação do conteúdo dinâmico. Neste caso, o ideal é criar um novo arquivo Excel e criar toda a interface e testá-la. Uma vez que tal interface esteja pronta, nós precisamos transformá-la em uma string que será utilizado no VBA. Este processo requererá um pouco de paciência e cuidado. Lembre-se que usamos as aspas (“”) para abrir e fechar uma string. Não obstante, o código XML já conterá aspas que envelopam os valores dos atributos (por exemplo, getContent="conteudoDin"). Neste caso, precisamos duplicar as aspas para que não haja erro na string durante o callback. xml = "<menu xmlns=""http://schemas.microsoft.com/office/2006/01/customui"">" & _ Finalmente, precisamos gerar os callbacks e exportá-los para o VBA onde escreveremos o miolo. Iniciaremos pelo VBE da pasta de trabalho onde inseriremos o código a seguir: Option Explicit Private Sub Workbook_Open() Agora, inseriremos o código no VBE da planilha 1 (sheet1) para checar se o valor em A1 é diferente de vazio. A checagem ocorrerá sempre que algo for modificado na planilha: Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) ' Checar para saber se há algo na célula A1 Finalmente, adicione um módulo onde inseriremos os callbacks como segue: Option Explicit 'Variável global representando o nosso RibbonX 'Rotina a ser chamada para invalidar o RibbonX 'Callback executado quando o ribbon é carregado ' Invalida o Ribbon forçando a reexecução dos callbacks 'Callback para gerar o conteúdo dinâmica ' Código xml do conteúdo dinâmico. Note que podemos definir xml = "<menu xmlns=""http://schemas.microsoft.com/office/2006/01/customui"">" & _ ' Checar o valor booleano e determinar o que deve ser mostrado Sub callbackDin(control As IRibbonControl) Salve, feche o arquivo e abra-o novamente. A interface dinâmica está pronta para uso, bastando apenas modificar o valor contido na célula A1 da planilha 1:
|
|||
| « Anterior | Δ Página principal | ¤ Índice | Próxima » |
|
Quer Aprender VBA no
Excel, Sem Dificuldades, com Exemplos |
||
|
Junto com o livro você Recebe 11 Bônus Incluindo 50 horas de Vídeo Aulas. |
||
|
Mesmo que Você não Saiba Nada de
Programação VBA ou já Tenha Tentado |
||
|
|
MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI (Online, Vitalício, Prático e Atualizado)! |
|
|
NÃO PROCURE VAGAS, SEJA PROCURADO! |
|
Para Todos os Detalhes, Acesse:
https://juliobattisti.com.br/curso-infra-ti.asp
|
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2026 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI