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

Quando os eventos Abrir e Fechar da pasta de trabalho são invocados, a barra de ferramentas é criada ou excluída, respectivamente.

Agora podemos criar os procedimentos que criarão sua CommandBar e também criar as macros que serão chamadas por cada botão desta barra. Para isso, inclua um Módulo ao projeto e digite o código 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 CommandBar
Dim cmdButton   As CommandBarButton
Dim 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 botões
    Set cmdButton = cmdbar.Controls.Add(Type:=msoControlButton)
        With cmdButton
            .Caption = BTN_MACRO_1              'Define o título do botão
            .Style = msoButtonCaption           'Apenas exibe Título
            .OnAction = "Macro1"                'Macro a ser executada
            .Visible = True                     'Botão estará visível?
            .Width = 150                        'Tamanho do botão
        End With
        
    Set cmdButton = cmdbar.Controls.Add(Type:=msoControlButton)
        With cmdButton
            .Caption = BTN_MACRO_2              'Define o título do botão
            .Style = msoButtonIconAndCaption    'Exibe Ícone e Título
            .FaceId = 59                        'Id do ícone
            .OnAction = "Macro2"                'Macro a ser executada
            .Visible = True                     'Botão estará visível?
            .Width = 150                        'Tamanho do botão
        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 botão da barra de ferramentas

    MsgBox "Ei... eu sou a Macro 1...", vbInformation
    
End Sub

Sub Macro2()
'Essa Macro será chamada ao clicar no segundo botão da barra de ferramentas

    MsgBox "Agora é a Macro 2, ok...", vbInformation
    
End Sub

As Macro1 e Macro2 são exemplos das macros que você poderá criar para o seu programa. Elas serão executadas ao clicar em alguns dos botões da sua barra de Ferramentas.

Sua barra de Ferramentas Personalizada

Você pode ter notado que o segundo botão têm um ícone. Este ícone é definido na propriedade FaceId. Neste site aqui tem umas tabelinhas onde você poderá encontrar os Ids destes ícones.

Então é isso aí pessoal.

Abração.

 

Antes de efetuar o download do arquivo de exemplo, convido você a socializar conosco.

Escolha uma das opções abaixo. Seguir no twitter, assinar nossa Newsletter...

Isso nos ajuda na divulgação do site e te permite ficar sempre atualizado das novidades. Fico muito grato pela sua colaboração.

Digite seu email:

Você receberá um email para ativar o cadastro, ok!