NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosLivroexc2007ribbon › Capítulo 1 : 09
Quer receber novidades e e-books gratuitos?
« Anterior Δ Página principal ¤ Índice Próxima »
Programando o RibbonX no Excel 2007
Autor: Robert Friedrick Martim
Lição 09 - Programando a Faixa de Opções

Uma vez que tenhamos criado o arquivo XML estamos prontos para iniciar a criação de nossos “callbacks”. Callback é o “movimento” que uma instrução faz em direção a um determinado ponto. Por exemplo, quando definimos a propriedade onAction para um botão, ao clicarmos o botão ele faz um “callback” (uma “chamada de retorno”) à ação especificada na propriedade (atributo).

Se nada é encontrado, então o “callback” falha porque há uma exceção no código.

Para criar “callbacks” temos duas opções:

  • Digitar a sub-rotina diretamente no VBA;
  • Ou gerar as sub-rotinas no o Office 2007 Custom UI Editor.

A vantagem em utilizar o Office 2007 Custom UI Editor é que ele varre o código XML e todos os onAction (e qualquer outro atributo que gere um callback como getVisible) definidos e lhe dá uma lista com todas as sub-rotinas (callbacks).

Obviamente que não teremos o miolo das rotinas, mas ao menos evita erro e maximiza a produção das rotinas.

Criando os “callbacks” diretamente no Office 2007 Custom UI Editor

Para adicionar “callbacks” automaticamente, primeiramente assegure-se que o documento Excel possui o código XML salvo com ele. Depois abra o Office 2007 Custom UI Editor e em seguida abra o arquivo XLSM (arquivo Excel contendo o XML e macros) contendo o código XML.


Figura 4‑1 Gerando callbacks automaticamente

A janela mostrará o código XML conforme a figura da página anterior. No canto superior direito há um pequeno botão para geração de “callbacks” (Generate Callbacks). Clique neste botão para gerar as sub-rotinas referidas na propriedade onAction de cada botão:


Figura 4‑2 Callbacks gerados automaticamente

A figura acima mostra os callbacks gerados automaticamente. Copie as sub-rotinas e cole no arquivo Excel em questão (em um módulo VBA). Tudo que precisamos agora é preencher o miolo do código com algo realmente útil.

Note que as sub-rotinas recebem como argumento um objeto chamado “control”. É este objeto que iremos manipular para executar o que desejamos.

Adicionando o miolo dos “callbacks”

Os “callbacks” nada mais são do que as sub-rotinas utilizadas para controlar as ações efetuadas no controles contidos em um grupo qualquer.

Conforme explicado anteriormente, o leitor tem duas opções: a) criar as rotinas no braço ou b) gerá-las automaticamente no Office 2007 Custom UI Editor.

Portanto, para facilitar nossa vida, abra o Office 2007 Custom UI Editor e em seguida abra a pasta de trabalho referente a este tópico. Gere os callbacks definidos no XML e copie-os para o VBA. Abaixo se encontra a lista de rotinas definidas no XML:


Figura 4‑3 Sub-rotinas definidas no XML (onAction)

Para todos os botões em questão criei uma pequena rotina para executar uma ação. As ações são explicadas dentro de cada uma das rotinas abaixo (os comentários gerados pelo Office 2007 Custom UI Editor são mantidos abaixo):

'Callback  for btn1 onAction
                   Sub  btnPincel(control As IRibbonControl)
                   '   Copia a selecao atual
       Selection.Copy
                   End Sub 
'Callback  for btn2 onAction
                   Sub  btnItálico(control As IRibbonControl)
                   '   Alterna entre itálico e  não itálico
       Selection.Font.Italic = Not Selection.Font.Italic
                   End Sub
'Callback  for btn3 onAction
                   Sub  btnNegrito(control As IRibbonControl)
                   '   Alterna entre negrito e  não negrito
       Selection.Font.Bold = Not Selection.Font.Bold
                   End Sub
'Callback  for btn4 onAction
                   Sub  btnSublinhado(control As IRibbonControl)
                   '   Alterna entre sublinhado e  não sublinhado
       If  Selection.Font.Underline = xlUnderlineStyleSingle Then
           Selection.Font.Underline =  xlUnderlineStyleNone
       Else:
           Selection.Font.Underline =  xlUnderlineStyleSingle
       End If
                   End Sub
'Callback  for btn5 onAction
                   Sub abrirNet(control  As IRibbonControl)
                   '   Abre o browser para  navegação no endereço especificado abaixo
       On Error GoTo  Err_Handler
       ThisWorkbook.FollowHyperlink  "https://juliobattisti.com.br/", , True,  True
       Exit Sub
Err_Handler:
       MsgBox Err.Description, vbCritical,  Err.Number
       
                   End Sub
'Callback  for btn6 onAction
                   Sub  CriarEmail(control As IRibbonControl)
       Dim appOl       As Object
       Dim  email       As  Object
       
       On Error GoTo  Err_Handler
       Set appOl =  CreateObject("Outlook.Application")
       Set email =  appOl.CreateItem(olMailItem)
       
       With email
           .Subject = "Novo email criado em  " & Date
           .Display 0
       End With
Limpar:
       Set appOl =  Nothing
       Set email =  Nothing
       Exit Sub
Err_Handler:
                   MsgBox Err.Description,  vbCritical, Err.Number
                   Resume Limpar
End Sub
'Callback  for btn7 onAction
                   Sub ajuda(control As IRibbonControl)
       MsgBox "Nao há ajuda para este  item...", vbInformation
                   End Sub
'Callback  for btn8 onAction
                   Sub sobre(control As IRibbonControl)
       Dim  msg     As  String
       msg = "Criado por Robert F  Martim" & vbCr & vbCr
       msg = msg & "© 2006-7. Todos os  direitos reservados."
       MsgBox msg, vbInformation,  "Sobre..."
                   End Sub

Salve o arquivo e agora você já pode clicar em qualquer um dos botões de comando para executar a ação determinada:


Figura 4‑4 Guia final customizada

O código XML para gerar a guia, grupos e botões conforme a figura acima é dado abaixo:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
      <ribbon startFromScratch="false">
        <tabs>
          <tab
            id="meuTab" 
            label="Minha Guia" 
            insertBeforeMso = "TabHome" >
         <!--  Início do primeiro grupo -->
            <group
               id="meuGrupo" 
               label="Grupo Formatar" >
            <button
                 id="btn1" 
                 imageMso="FormatPainter" 
                 label="Pincel" 
                 size="large" 
                 onAction="btnPincel" />
            <button
                 id="btn2" 
                 imageMso="Italic" 
                 label="Itálico" 
                  size="normal" 
                 onAction="btnItálico" /> 
            <button
                 id="btn3" 
                 imageMso="Bold" 
                 label="Negrito" 
                 size="normal" 
                 onAction="btnNegrito" />
            <button
                 id="btn4" 
                 imageMso="Underline" 
                 label="Sublinhar" 
                  size="normal" 
                 onAction="btnSublinhado" />
            </group>
         <!--  Início do segundo grupo -->
            <group
               id="meuGrupo2" 
               label = "Grupo Internet">
            <button
                 id="btn5" 
                 imageMso="HyperlinkInsert" 
                 size="large" 
                 label="Internet" 
                 onAction="abrirNet"/>
               
               <button
                 id="btn6" 
                 imageMso="FileSendAsAttachment" 
                 size="large" 
                 label="E-mail" 
                 onAction="CriarEmail"/>
            </group>
         <!--  Início do terceiro grupo -->
            <group
               id="meuGrupo3" 
               label = "Grupo Ajuda">
            <button
                 id="btn7" 
                 imageMso="Help" 
                 size="normal" 
                 label="Ajuda" 
                 onAction="ajuda"/>
            <button
                 id="btn8" 
                 imageMso="ReviewAllowUsersToEditRanges" 
                 size="normal" 
                 label="Sobre" 
                 onAction="sobre"/>
            </group>
       </tab>
        </tabs>
      </ribbon>
   </customUI>
« Anterior Δ Página principal ¤ Índice Próxima »

Quer Aprender VBA no Excel, Sem Dificuldades, com Exemplos
Práticos Passo a Passo e com Explicações Detalhadas?

Aprenda com Júlio Battisti: "Macros e Programação VBA no Excel 2010 Através de Exemplos Práticos e Úteis - Passo a Passos

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
Aprender VBA e Desistiu ou Achou Difícil, com Este Livro EU GARANTO que Você Aprenderá, SEM DIFICULDADES. APRENDIZADO GARANTIDO.

Clique Aqui Para Todos os Detalhes sobre Esta Oferta

- É com alegria que Comunico o lançamento do meu 42º Livro.

 

- Perfeito para Iniciantes em Programação VBA.

 

- Abordo desde o Básico até Comandos Avançados.

 

- Códigos detalhadamente explicados, linha por linha.

 

- Criação de Funções e Procedimentos com VBA.

 

- O Modelo de Objetos do Excel - Exemplos Práticos.

 

- Criação de Formulários - UseForms.

 

- Criação de um Sistema de Cadastro Completo, com Foto.

 

- Como trabalhar com Tabelas Dinâmicas na Programação VBA.

 

- Como trabalhar com Gráficos na Programação VBA.

 

- Rotina que Escreve um número por Extenso usando VBA.

 

- E muito, muito mais mesmo...

 

- Junto com o livro você recebe 50 horas de Vídeo Aulas sobre Macros, Programação VBA, Fórmulas e Funções Avançadas, Dashboards e Muito mais.

 

[Bônus]: 60 horas de Vídeo Aulas sobre Macros, Programação VBA, Fórmulas e Funções Avançadas no Excel, Recursos Avançados, Dashboards e Muito mais.

 

Aprenda com Júlio Battisti: "Macros e Programação VBA no Excel 2010 Através de Exemplos Práticos e Uteis - Passo a Passos

Aprenda com Júlio Battisti: "Macros e Programação VBA no Excel 2010 Através de Exemplos Práticos e Uteis - Passo a Passos

A BÍBLIA DA
PROGRAMAÇÃO
VBA NO EXCEL

 

Quer receber novidades e e-books gratuitos?

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-2021 ®

[LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI