Você quer proteger o código dentro das suas macros VBA contra visualização ou edição não autorizada no Word. O Editor do Visual Basic inclui um recurso de proteção por senha que criptografa todo o projeto de macro. Este artigo explica como definir uma senha no seu projeto VBA, o que a criptografia realmente protege e como evitar armadilhas comuns que podem bloquear seu próprio código.
Principais Conclusões: Criptografar Macros VBA no Word
- Desenvolvedor > Visual Basic > Ferramentas > Propriedades do VBAProject > guia Proteção: O único local para definir uma senha que criptografa todo o projeto de macro.
- Caixa de seleção “Bloquear projeto para exibição”: Deve estar ativada para que a senfa tenha efeito quando o documento for fechado e reaberto.
- Recuperação de senha é impossível: A Microsoft não oferece redefinição de senha para projetos VBA. Você deve armazenar a senha em um gerenciador de senhas ou perder o acesso permanentemente.
O que a Criptografia de Projeto VBA Protege e Não Protege
A criptografia de projeto VBA no Word usa uma senha para proteger o código-fonte da macro armazenado dentro de um documento ou modelo. Quando você define uma senha e ativa “Bloquear projeto para exibição”, qualquer pessoa que abrir o Editor do Visual Basic verá uma solicitação de senha antes que os módulos de código, formulários de usuário e módulos de classe sejam exibidos. Sem a senha correta, a árvore do projeto fica visível, mas todo o código fica oculto e não pode ser exportado.
A criptografia é aplicada no nível do projeto VBA, não no nível do documento. Isso significa que o documento em si permanece totalmente funcional e editável. As macros continuam sendo executadas normalmente mesmo quando o projeto está bloqueado. A senha apenas restringe o acesso ao código dentro do editor.
Existem limitações importantes. A criptografia não é de nível militar. Existem ferramentas de terceiros que podem recuperar ou remover senhas VBA, embora isso viole os termos de serviço da Microsoft. A senha é armazenada dentro do binário do documento, não em um servidor remoto. Se você perder a senha, não há mecanismo de recuperação fornecido pela Microsoft.
Passos para Criptografar Macros VBA no Word
Siga estes passos para adicionar proteção por senha ao seu projeto de macro VBA. Você deve ter acesso à guia Desenvolvedor no Word. Se a guia Desenvolvedor não estiver visível, clique com o botão direito na faixa de opções e escolha Personalizar a Faixa de Opções, marque Desenvolvedor na coluna da direita e clique em OK.
- Abra o Editor do Visual Basic
Na guia Desenvolvedor, clique em Visual Basic. Como alternativa, pressione Alt+F11 no teclado. O editor abre em uma janela separada. - Selecione o projeto VBA
No painel Explorador de Projetos à esquerda, clique no projeto correspondente ao seu documento. O nome do projeto geralmente corresponde ao nome do arquivo do documento, como “Normal” para o modelo global ou “Documento1” para um documento aberto. - Abra as propriedades do projeto
Na barra de menus na parte superior do editor, clique em Ferramentas e depois em Propriedades do VBAProject. A caixa de diálogo Propriedades é aberta. - Vá para a guia Proteção
Na caixa de diálogo Propriedades, clique na guia Proteção. Esta guia contém os campos de senha e a caixa de seleção de bloqueio. - Defina a senha
Na caixa de texto Senha, digite uma senha forte. Redigite a mesma senha na caixa Confirmar senha. Use uma combinação de letras maiúsculas, minúsculas, dígitos e símbolos. Não use informações pessoais. - Ative o bloqueio do projeto
Marque a caixa “Bloquear projeto para exibição”. Esta caixa deve estar selecionada para que a senha tenha efeito. Se você deixá-la desmarcada, a senha é armazenada, mas não é aplicada. - Salve e feche
Clique em OK para fechar a caixa de diálogo Propriedades. Salve o documento pressionando Ctrl+S ou clicando no ícone Salvar na Barra de Ferramentas de Acesso Rápido. Feche o Editor do Visual Basic. O documento agora tem um projeto de macro criptografado.
Problemas Comuns ao Criptografar Macros VBA
O Word Solicita a Senha Toda Vez que o Documento é Aberto
Isso ocorre quando você define uma senha, mas também configura o documento para abrir macros automaticamente. O prompt de senha do projeto VBA aparece uma vez por sessão quando o editor é aberto, não quando o documento é aberto. Se você vir o prompt toda vez que abrir o documento, pode ter ativado o prompt de senha na Central de Confiabilidade em Configurações de Macro. Para alterar isso, vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro e selecione “Desabilitar todas as macros com notificação”. Essa configuração mostra uma barra de aviso de segurança em vez de um prompt de senha.
A Caixa de Diálogo de Senha Não Aparece
A caixa de diálogo de senha só aparece quando alguém abre o Editor do Visual Basic. Se você clicar duas vezes em um módulo no Explorador de Projetos, o Word verifica a senha antes de exibir o código. Se a caixa de diálogo não aparecer, verifique se a caixa “Bloquear projeto para exibição” está marcada na guia Proteção. Se a caixa não estiver selecionada, a senha é armazenada, mas não é aplicada. Abra a caixa de diálogo Propriedades novamente, marque a caixa e salve o documento.
Senha Perdida ou Esquecida
Não há uma maneira oficial de recuperar uma senha perdida de projeto VBA. A Microsoft não fornece uma ferramenta de redefinição de senha ou backdoor. Se você perder a senha, o código da macro fica permanentemente inacessível. Os únicos métodos de recuperação envolvem software de recuperação de senha de terceiros, que pode violar o contrato de licença de software e pode não funcionar em formatos de arquivo mais recentes. Sempre armazene a senha do seu projeto VBA em um gerenciador de senhas antes de aplicá-la.
Proteção por Senha de Projeto VBA vs Criptografia de Documento
| Item | Senha do Projeto VBA | Criptografia de Documento (Senha do Word) |
|---|---|---|
| O que protege | Código-fonte da macro e módulos VBA | Conteúdo completo do documento, incluindo texto, imagens e formatação |
| Como é aplicado | Ferramentas > Propriedades do VBAProject > guia Proteção | Arquivo > Informações > Proteger Documento > Criptografar com Senha |
| Execução de macros | As macros continuam sendo executadas normalmente | As macros não podem ser abertas até que a senha do documento seja inserida |
| Recuperação de senha | Não suportado pela Microsoft | Não suportado pela Microsoft |
| Algoritmo de criptografia | Ofuscação fraca, removível por ferramentas de terceiros | AES-256 no Office 2016 e posterior |
A criptografia de projeto VBA é uma camada de proteção básica destinada a impedir a visualização casual do código da sua macro. Para uma segurança forte do documento, use a criptografia de documento integrada do Word com uma senha forte. Combine ambos os métodos quando precisar proteger tanto o conteúdo do documento quanto o código-fonte da macro. Sempre mantenha uma cópia de backup do seu documento sem a senha VBA em um local seguro.