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 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:
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 EditorPara 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.
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:
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:
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:
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 |
||
|
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-2025 ®
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