0213-As macros não foram habilitadas… E agora?

Já tive a experiência desagradável de ouvir de um usuário: “O seu sistema não está funcionando! Não sei o que aconteceu, mas nada está funcionando! Deve ter sido infectado com algum vírus!”.

Como desenvolvedor dá um frio na barriga: “O que posso ter deixado passar depois de ter pensado em várias possibilidades de erros? Validei cada etapa junto com usuário… Fiz os testes de plataforma e nada aconteceu…”

E quando finalmente podemos ver o que está acontecendo, vem a resposta: As macros foram desabilitadas!

Depois da introdução da central de confiabilidade nas últimas versões do Excel (2007 e superiores), é muito importante orientar os usuários sobre essas configurações.

Há duas abordagens possíveis:

  • Definir a pasta na qual ele será salvo como um local confiável.
  • Obter um certificado de segurança digital que permita ao Excel reconhecer a confiabilidade do criador do aplicativo.

A segunda opção exige o investimento na obtenção do certificado e na sua renovação a cada prazo de expiração. Nos concentraremos na primeira abordagem por estar mais ao alcance.

Portanto temos que nos valer de uma configuração manual para que os arquivos com macros sejam abertos com elas habilitadas.

Os passos a seguir foram realizados na versão 2010:

A partir da Aba Arquivo, clicando em Opções, temos:

0213_03

Clicando nas Configurações da Central de Confiabilidade:

0213_04

Nesta tela podemos definir quais as pastas a partir das quais os arquivos podem ser abertos, habilitando as macros, sem a necessidade de confirmação pelo usuário.

0213_05

Essas etapas devem ser realizadas manualmente, e por desconhecimento ou esquecimento, muitos usuários não o fazem, tendo que conviver com a possibilidade de ocorrer o problema relatado no início deste artigo.

Se o arquivo desenvolvido depender de macros durante a sua abertura para configurar o esquema de proteção, numa situação como essa, estará vulnerável.

E o que pode ser feito para contornar a situação?

A proposta é criamos um procedimento de forma que, ao fecharmos o arquivo, todas suas as planilhas sejam ocultas e que deixemos uma mensagem que informa que o arquivo foi aberto com as macros desabilitadas.

0213_01

O primeiro passo e criar a planilha que exibirá a mensagem.

No exemplo acima, utilizei uma planilha em branco que nomeei como Alerta, inserindo um clipart (sinal de alerta) e uma caixa de texto para a mensagem.

Na sequência foram ocultas as linhas abaixo e as colunas à direita da região que contém a mensagem.

Complementando, a planilha foi protegida com a senha “XL” de forma que nenhum elemento possa ser selecionado.

Além da planilha Alerta, o arquivo possui duas outras planilhas vazias que denominei Conteúdo 1 e Conteúdo 2

Em seguida, teremos que inserir dois eventos de Pasta de Trabalho similares a esses aqui:

Evento para abertura do arquivo

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Worksheets("Conteúdo 1").Visible = True
Worksheets("Conteúdo 2").Visible = True
Worksheets("Alerta").Visible = xlVeryHidden
Application.ScreenUpdating = True
End Sub

Evento para fechamento do arquivo

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Worksheets("Alerta").Visible = True
Worksheets("Conteúdo 1").Visible = xlVeryHidden
Worksheets("Conteúdo 2").Visible = xlVeryHidden
Application.ScreenUpdating = True
ThisWorkbook.Save
End Sub

Eles irão controlar a visibilidade, ou não, da planilha Alerta.

Sempre que o arquivo for fechado, a planilha Alerta será transformada na única planilha visível.

Todas as demais planilhas recebem o atributo xlVeryhidden. Dessa forma, não poderão ser reexibidas pela interface do usuário.

Se o arquivo for aberto com as macros desabilitadas a única planilha que o usuário verá é a planilha Alerta.

É importante proteger também o projeto VBA. Nesse exemplo também foi utilizada a senha “XL”.

Dessa forma o projeto fica “encapsulado” e nada poderá ser modificado.

Claro que serão necessárias adaptações para cada caso, mas o importante é entender o raciocínio:

  • Criar uma planilha protegida que será exibida caso as macros sejam desabilitadas
  • Criar um evento de Pasta de Trabalho para deixar essa planilha como a única planilha visível sempre que o arquivo for fechado.
  • Criar um evento de planilha para que, na abertura do arquivo, exibam-se as planilha desejadas à exceção da planilha de alerta.
  • Proteger o projeto VBA do arquivo para impedir a visualização dos códigos e objetos.

Lembramos sempre que o Excel possui falhas de segurança que permitem que hackers possam acessar informações em arquivos protegidos. No entanto, abordagens como a descrita nesse artigo ajudam a tornar o projeto mais seguro em 99,99% das vezes.

Baixe o arquivo de exemplo aqui.

Anúncios

In Excel We Trust

Marcado com: , , ,
Publicado em Nível: Avançado
Um comentário em “0213-As macros não foram habilitadas… E agora?
  1. Robson Lucas disse:

    Muito bom, ótima dica!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Visitas dos usuários
  • 2,069,536

Clique para assinar este blog e receber notificações de novos artigos por email.

Junte-se a 1.534 outros seguidores

Aumente sua interação

Siga-nos do twitter (@usuariosdoexcel).

Acesse o nosso fórum e compartilhe as suas dúvidas.

Curta nossa página no Facebook.

Junte-se ao grupo do LinkedIn.

Visite-nos utilizando o seu smartphone ou tablet.

Recomende este Blog
Visualizar notícias
Site monitorado:
Real Time Web Analytics

Clicky

%d blogueiros gostam disto: