Tag Archives: CommandBar

VBA – Adicionando e removendo sua barra de ferramentas personalizada

Introdução

Um recurso interessante que o Microsoft Excel disponibiliza é a criação de uma barra de ferramentas personalizada que contém os atalhos de maior interesse para um determinado usuário ou planilha. Além disso, ele permite que você anexe essa barra de ferramentas à sua planilha, o que faz que esta acompanhe a planilha, fazendo que esta apareça em todo computador em que for aberta.

O problema

É uma funcionalidade muito interessante. Seria perfeita se não fosse por apenas uma problema. Quando outro usuário abre a planilha que contém a barra de ferramentas anexa, mesmo que este não abra mais esta planilha ou até a exclua do disco, a barra de ferramentas continuará adicionada a seu Microsoft Excel, o que pode até mesmo gerar erros de execução, forçando o usuário a excluí-la manualmente, desde que este tenha conhecimento para isto.

Porém, é possível contornar tal problema através de Macros que são executadas em momentos específicos, mais precisamente ao abrir a planilha que é quando a nova barra de ferramentas é adicionada e ao fechá-la, que é quando esta deve ser excluída.

Este é o processo mais aconselhado, pois toda vez em que o usuário fechar a pasta de trabalho, a barra de ferramentas será excluída.

Para efetuar este processo, vamos assumir que temos uma barra de ferramentas personalizada já criada de nome “Nova Barra” com alguns botões padrão do Microsoft Excel, conforme a figura abaixo:

Nova Barra de Ferramentas

Agora, anexe esta barra de ferramentas à pasta de trabalho, clicando em Ferramentas->Personalizar e nesta tela, selecione na lista da esquerda o item Nova Barra e clique em Anexar, deixando-a desta forma:

ajkbsmpbw67f_95fj5nkhdk

Isso faz com que em qualquer computador em que esta planilha seja aberta, a barra de ferramentas Nova Barra seja instalada. Nestas condições, todos os problemas listados acima transcorrerão.

A solução

Para resolver o problema de forma automatizada, será necessária a utilização de código VBA. Capturaremos os eventos Workbook_Open, que ocorre quando a pasta de trabalho é aberta Workbook_BeforeClose que ocorre um pouco antes desta ser fechada. Abra o VBA em Ferramentas->Macro->Editor do Visual Basic (Alt+F11) e na janela de projeto, clique duas vezes no item EstaPasta_de_trabalho para abrir a janela de código. Nesta janela, insira o seguinte:

1
2
3
4
5
6
7
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars(“Nova Barra”).Delete
End Sub

Private Sub Workbook_Open()
Application.CommandBars(“Nova Barra”).Enabled = True
End Sub

CommandBars é uma coleção que se refere a todas as Barras de ferramentas do Microsoft Excel que existem no contexto atual. Através desta, é possível obter informações e manipular de formar completa as barras de ferramentas, até sua criação completo por meio de código VBA. Para nosso caso, precisaremos apenas trabalhar algumas propriedades.

O código faz com que, ao ser aberta, a pasta de trabalho habilite a barra de ferramentas “Nova Barra” (linha 6), que existe em seu contexto pois ela foi anexada a esta. Na linha 2, dentro o evento Workbook_BeforeClose que ocorre pouco antes da planilha ser fechada, a barra de ferramentas é excluída, deixando de existir pelo menos para aquela instalação do Microsoft Excel.

Feito isto, é possível testar a funcionalidade. Feche a planilha atual. Abra-a (não se esqueça de ativar as Macros) novamente e veja que a barra de ferramentas “Nova Barra” é mostrada. Esse é o comportamento normal, mesmo sem a adição das Macros. Agora, feche e salve a planilha.

Abra o Excel (no o arquivo com a barra criada anteriormente, e sim o programa Microsoft Excel) novamente criando uma nova pasta. Veja que a barra de ferramentas “Nova Barra” já é mais mostrada. Para conferir a não existência desta, vá ao menu Ferramentas->Personalizar e na aba “Barras de ferramentas”, confira que a “Nova Barra” já existe mais.

Para conferir o teste, tente abrir esta planilha em outro computador.

Obs: Se as macros não forem ativadas, a barra de ferramentas será adiciona pois está anexada à pasta de trabalho, mas não será excluída.

Conclusão

Utilizando esta forma de gerenciamento das barras de ferramentas, além de resolver o problema da população desenfreada de barras personalizadas, é possível gerenciar corretamente suas barras de ferramentas, permitindo a construção de planilhas completas e que não deixam resíduos nos computadores de outros usuários.