Criar Um Botão Na Barra de Ferramentas Para Chamar Suas Macros

14
Criar um botão na barra de ferramentas para chamar suas macros Por Reinaldo Coral Oi pessoal. Hoje mostraremos com dar um ar “profissional ” aos seus projetos de macros. Geralmente construímos nossas macros (rotinas VBA) e chamamos através de atalhos, botões de comando ou até mesmo eventos da planilha ou pasta de trabalho. Enfim, quero mostrar neste artigo, outra maneira bem interessante de fazer uma chamada à macro com uma aparência limpa e amigável ao usuário. Vamos criar nossa própria barra de ferramentas ao estilo do próprio Excel. Dessa maneira, o usuário pode ter uma experiência melhor e mais semelhante ao que já está acostumado. Isto são barras de ferramentas... Bom, pra começar, vamos definir o que precisaremos neste projeto. Criar um módulo para 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 código 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

description

Criar Um Botão Na Barra de Ferramentas Para Chamar Suas Macros

Transcript of Criar Um Botão Na Barra de Ferramentas Para Chamar Suas Macros

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