Upload
rdcaselli
View
10
Download
0
Embed Size (px)
DESCRIPTION
Criar Um Botão Na Barra de Ferramentas Para Chamar Suas Macros
Citation preview
Criar um boto na barra de ferramentas para chamar suas macrosPorReinaldo CoralOi pessoal.Hoje mostraremos com dar um ar profissional aos seus projetos de macros.Geralmente construmos nossas macros (rotinas VBA) e chamamos atravs de atalhos, botes de comando ou at mesmo eventos da planilha ou pasta de trabalho.Enfim, quero mostrar neste artigo, outra maneira bem interessante defazeruma chamada macro com uma aparncia limpa e amigvel ao usurio.Vamos criar nossa prpria barra de ferramentas ao estilo do prprio Excel.Dessa maneira, o usurio pode ter uma experinciamelhore mais semelhante ao que j est acostumado.
Isto so barras de ferramentas...Bom, pra comear, vamos definir o que precisaremos neste projeto.Criar ummdulopara construir nossa macro e nossa barra de ferramentas;Definir os eventos Open e Before_Close da pasta de trabalho para iniciar e eliminar a barra de ferramentas, respectivamente.Abra o VBA Project (ALT+F11).Duplo clique em EstaPasta_de_trabalho.Escreva o cdigo abaixo:
Private Sub Workbook_Open()On Error Resume Next
'Cria a Barra de ferramentas personalizada Call CriarMenus
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)On Error Resume Next
'Exclui a Barra de ferramentas personalizada Call DeletarMenu
End Sub
Quando os eventos Abrir e Fechar da pasta de trabalho so invocados, a barra de ferramentas criada ou excluda, respectivamente.Agora podemos criar os procedimentos que criaro sua CommandBar e tambm criar as macros que sero chamadas por cada boto desta barra. Para isso, inclua um Mdulo ao projeto e digite o cdigo a seguir.
Public Const CMDBARNOME As String = "Minha CommandBar"Public Const BTN_MACRO_1 As String = "Executar MACRO 1"Public Const BTN_MACRO_2 As String = "Executar MACRO 2"
Public Sub CriarMenus()Dim cmdbar As CommandBarDim cmdButton As CommandBarButtonDim menu As CommandBarPopup
On Error Resume Next
'Exclui a barra caso j exista Call DeletarMenu 'Adiciona a barra de ferramentas Set cmdbar = CommandBars.Add(CMDBARNOME, msoBarFloating) 'Limpa a barra de Ferramentas With cmdbar .Controls(BTN_MACRO_1).Delete .Controls(BTN_MACRO_2).Delete .Visible = True End With 'Adiciona os botes Set cmdButton = cmdbar.Controls.Add(Type:=msoControlButton) With cmdButton .Caption = BTN_MACRO_1 'Define o ttulo do boto .Style = msoButtonCaption 'Apenas exibe Ttulo .OnAction = "Macro1" 'Macro a ser executada .Visible = True 'Boto estar visvel? .Width = 150 'Tamanho do boto End With Set cmdButton = cmdbar.Controls.Add(Type:=msoControlButton) With cmdButton .Caption = BTN_MACRO_2 'Define o ttulo do boto .Style = msoButtonIconAndCaption 'Exibe cone e Ttulo .FaceId = 59 'Id do cone .OnAction = "Macro2" 'Macro a ser executada .Visible = True 'Boto estar visvel? .Width = 150 'Tamanho do boto End With
End Sub
Public Sub DeletarMenu()On Error Resume Next Application.CommandBars(CMDBARNOME).Delete
End Sub
Sub Macro1()'Essa Macro ser chamada ao clicar no primeiro boto da barra de ferramentas
MsgBox "Ei... eu sou a Macro 1...", vbInformation End Sub
Sub Macro2()'Essa Macro ser chamada ao clicar no segundo boto da barra de ferramentas
MsgBox "Agora a Macro 2, ok...", vbInformation End Sub
As Macro1 e Macro2 so exemplos das macros que voc poder criar para o seu programa. Elas sero executadas ao clicar em alguns dos botes da sua barra de Ferramentas.
Sua barra de Ferramentas Personalizada
Voc pode ter notado que o segundo boto tm um cone. Este cone definido na propriedade FaceId.
Tabelinhas com os Ids destes cones.
Option Explicit
Function Item_Open()Dim objCBsDim objMyCBDim objButtonDim i
Set objCBs = Item.GetInspector.CommandBarsSet objMyCB = objCBs.Add("Icons")objMyCB.Visible = TrueFor i = 0 to 500Set objButton = objMYCB.Controls.AddobjButton.Style = 3objButton.Caption = iobjButton.FaceID = iobjButton.Visible = TrueNextEnd Function