Como Assinar uma Macro VBA do Word com AutoCertificado
🔍 WiseChecker

Como Assinar uma Macro VBA do Word com AutoCertificado

Você escreveu uma macro VBA no Word e quer executá-la sem ver o aviso de segurança toda vez. O Word bloqueia macros não assinadas por padrão, a menos que o documento esteja em um local confiável. Assinar sua macro com um autocertificado informa ao Word que você criou o código e permite ativá-lo para seu próprio uso. Este artigo explica como criar um certificado autoassinado com a ferramenta SelfCert e como aplicar essa assinatura ao seu projeto VBA.

Principais Conclusões: Assinando Macros VBA com SelfCert

  • SelfCert.exe na pasta Ferramentas do Office: Cria um certificado digital pessoal que você pode usar para assinar seus próprios projetos VBA.
  • Ferramentas > Assinatura Digital no editor VBA: Abre a caixa de diálogo para escolher seu certificado e aplicar a assinatura ao projeto atual.
  • Central de Confiabilidade > Configurações de Macro > Confiar acesso ao modelo de objeto do projeto VBA: Deve estar ativado antes de assinar um projeto programaticamente ou manualmente.

ADVERTISEMENT

O que o SelfCert Faz e Por Que Você Precisa Dele

SelfCert é uma ferramenta gratuita incluída no Microsoft Office. Ela gera um certificado digital em sua máquina local. Este certificado não é emitido por uma autoridade terceira confiável como VeriSign ou DigiCert. Ele é válido apenas no computador onde foi criado. Quando você assina uma macro com um autocertificado, a assinatura prova que o código veio de você e não foi alterado desde a assinatura.

O Word verifica o certificado ao abrir um documento que contém macros. Se o certificado não for confiável, o Word exibe um aviso de segurança. Para confiar em seu próprio certificado autoassinado, você deve adicioná-lo ao repositório de Editores Confiáveis em sua máquina. Depois de fazer isso, o Word executará suas macros assinadas sem solicitação.

SelfCert é ideal para desenvolvedores individuais que escrevem macros para uso próprio ou para implantação em uma pequena equipe onde todos os usuários podem instalar o mesmo certificado autoassinado. Para macros distribuídas a muitos usuários fora de sua organização, você precisa de um certificado de uma Autoridade Certificadora comercial.

Pré-requisitos

Antes de começar, verifique o seguinte:

  • O Microsoft Office está instalado. SelfCert faz parte do grupo Ferramentas do Office.
  • Você tem direitos de administrador em sua máquina Windows para instalar o certificado no repositório de Editores Confiáveis.
  • O projeto VBA que você deseja assinar não está protegido por senha. Se estiver, remova a senha primeiro.

Passos para Criar um Certificado Autoassinado e Assinar Sua Macro

  1. Localize e execute SelfCert.exe
    No Windows 11 ou Windows 10, abra o Explorador de Arquivos e navegue até a pasta Ferramentas do Office. O caminho padrão é C:\Program Files (x86)\Microsoft Office\root\Office16 ou C:\Program Files\Microsoft Office\root\Office16. Procure um arquivo chamado SelfCert.exe. Clique duas vezes para iniciar a caixa de diálogo Criar Certificado Digital.
  2. Nomeie seu certificado
    Na caixa de diálogo, digite um nome descritivo para seu certificado, como “Meu Certificado de Macro 2025”. Clique em OK. A ferramenta cria o certificado e o armazena em seu repositório de certificados pessoais. Uma mensagem de confirmação aparece.
  3. Abra o editor VBA no Word
    No Word, pressione Alt+F11 para abrir o editor do Visual Basic for Applications. No painel Explorador de Projetos, selecione o projeto que contém a macro que você deseja assinar.
  4. Abra a caixa de diálogo Assinatura Digital
    No editor VBA, clique no menu Ferramentas e depois escolha Assinatura Digital. A caixa de diálogo Assinatura Digital é aberta mostrando o status atual da assinatura do projeto.
  5. Escolha seu certificado
    Clique no botão Escolher. Na caixa de diálogo Selecionar Certificado, encontre o certificado que você criou no passo 2. Selecione-o e clique em OK. O nome do certificado agora aparece na caixa de diálogo Assinatura Digital em “O projeto VBA está atualmente assinado com.”
  6. Aplique a assinatura
    Clique em OK na caixa de diálogo Assinatura Digital. O Word assina o projeto VBA com seu certificado autoassinado. Salve o documento para preservar a assinatura.

Adicione o Certificado aos Editores Confiáveis

Após assinar, o Word ainda não confia no certificado por padrão. Complete estas etapas para fazer o Word confiar em seu certificado autoassinado:

  1. Abra o documento que contém a macro assinada
    Clique duas vezes no documento. O Word exibe uma barra de aviso de segurança abaixo da faixa de opções. Clique na guia Arquivo e depois em Informações.
  2. Ative a macro e confie no editor
    No painel Informações, clique no botão Ativar Conteúdo. Um menu suspenso aparece. Selecione Opções Avançadas. Na caixa de diálogo Opções de Segurança do Microsoft Office, selecione o botão de opção “Confiar em todos os documentos deste editor.” Clique em OK.
  3. Verifique se o editor é confiável
    Abra o Word novamente. Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Editores Confiáveis. Você deve ver seu certificado autoassinado listado lá.

ADVERTISEMENT

Se a Assinatura Não For Aplicada ou a Macro Ainda Mostrar um Aviso

A caixa de diálogo Assinatura Digital mostra “Nenhum certificado disponível”

SelfCert.exe pode não ter sido executado corretamente, ou o certificado foi criado no repositório errado. Execute SelfCert.exe novamente e dê um novo nome ao certificado. Se o problema persistir, abra o Gerenciador de Certificados pressionando Win+R, digitando certmgr.msc e pressionando Enter. Verifique em Pessoal > Certificados. Se seu certificado estiver faltando, execute SelfCert.exe como administrador.

O Word ainda bloqueia a macro após a assinatura

A causa mais comum é que o certificado autoassinado não foi adicionado ao repositório de Editores Confiáveis. Repita as etapas na seção “Adicione o Certificado aos Editores Confiáveis.” Se você já fez isso, verifique as configurações da Central de Confiabilidade. Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro. Selecione “Desabilitar todas as macros, exceto as assinadas digitalmente.” Esta configuração permite apenas macros assinadas. Se você escolher “Habilitar todas as macros”, o Word ignora a assinatura completamente.

A assinatura quebra após você editar a macro

Qualquer modificação no código VBA invalida a assinatura digital. Após editar uma macro, você deve assinar o projeto novamente. Abra o editor VBA, selecione o projeto e repita os passos 4 a 6 na lista de instruções principal.

SelfCert.exe não está instalado

Algumas edições do Office, como Office Home and Student, não incluem SelfCert.exe. Se você não conseguir encontrar o arquivo, pode instalá-lo a partir do Microsoft Download Center pesquisando por “SelfCert.exe download.” Alternativamente, use o comando PowerShell New-SelfSignedCertificate para gerar um certificado e depois importe-o para o repositório Pessoal usando o Gerenciador de Certificados.

Certificado Autoassinado vs Certificado de Assinatura de Código Comercial

Item Certificado Autoassinado Certificado de Assinatura de Código Comercial
Custo Gratuito Pago, tipicamente $100–$500 por ano
Escopo de confiança Apenas no computador onde foi criado e confiado Confiável por todos os computadores Windows por padrão
Distribuição Adequado para uso pessoal ou pequenas equipes confiáveis Necessário para distribuição pública a muitos usuários
Expiração Tipicamente 1 a 10 anos, definido durante a criação 1 a 3 anos, deve ser renovado
Revogação Não pode ser revogado centralmente Pode ser revogado pela Autoridade Certificadora

Agora você pode assinar suas próprias macros VBA usando SelfCert e configurar o Word para confiar em seu certificado autoassinado. Após assinar, teste a macro fechando e reabrindo o documento e verificando se nenhum aviso de segurança aparece. Para uma solução mais permanente em um ambiente corporativo, solicite um certificado de assinatura de código ao seu departamento de TI ou compre um de uma Autoridade Certificadora confiável. Como etapa avançada, considere usar o utilitário de linha de comando SignTool para assinar macros programaticamente durante um processo de compilação.

ADVERTISEMENT