Você está todo feliz fazendo seu aplicativo em VBA, adiciona alguns controles ActiveX diretamente na sua planilha, codifica, tudo certo. Mas na hora de executar, é presenteado com a seguinte mensagem:
Ok, sem pânico. O problema é de entendimento longo, mas de fácil solução. Para não ver mais esta mensagem, basta fazer o seguinte:
Vá ao menu Arquivo->Opções para ver esta tela:
Aqui, acesse a última opção na lista da esquerda chamada “Central de Confiabilidade”.
Clique agora no único botão da tela à direita com o texto “Configurações da Central de Confiabilidade”. Você verá uma tela com várias opções à esquerda. Nela, selecione a opção “Configuração do ActiveX”:
Você verá várias opções nesta tela que definirão o funcionamento (ou não) dos controles ActiveX, sendo cada uma delas explicadas abaixo:
- Desabilitar todos os controles sem notificação Todos os controles ActiveX em documentos estão desabilitados. Um espaço reservado para um X vermelho ou uma imagem do controle é exibida.
- Avisar antes de habilitar não seguros para controles de inicialização com restrições adicionais e seguros para inicialização (SFI) controles com restrições mínimas Há dois comportamentos com base na presença de projetos do VBA.
- Projeto com um VBA Todos os controles ActiveX são desativados e a barra de mensagem será exibida. Clique em Ativar para ativar os controles.
- Projeto sem um VBA Os controles SFI ActiveX estão ativados com restrições mínimas e não são exibidos na barra de mensagens. No entanto, os controles ActiveX devem todos ser marcados como SFI para não para gerar a barra de mensagens. Os controles UFI ActiveX estão desativados.
- Avisar antes de habilitar todos os controles com restrições mínimas Este é o padrão. Há dois comportamentos que se baseiam na presença de projetos do VBA:
- Projeto com um VBA Todos os controles ActiveX são desativados e a barra de mensagem será exibida. Clique em Ativar para ativar os controles.
- Projeto sem um VBA Os controles SFI ActiveX estão ativados com restrições mínimas e não são exibidos na barra de mensagens. No entanto, os controles ActiveX devem todos ser marcados como SFI para não para gerar a barra de mensagens. Os controles UFI ActiveX estão desativados.
- Habilitar todos os controles sem restrições e sem aviso (controles não é recomendados, possivelmente perigosos podem ser executados) Habilite todos os controles ActiveX em documentos com restrições mínimas.
- Modo de segurança (ajuda a limitar o acesso do controle ao computador) Ative os controles SFI ActiveX no modo de segurança. Modo de segurança significa que o desenvolvedor tenha marcado como o controle como seguro.
(retirado o site da Microsoft)
Para resolver o problema, é preciso selecionar uma opção de contexto confiável. Para meu caso, mantive opção “Avisar antes de habilitar todos os controles com restrições mínimas“, que é a mensagem que aparece quando se abre o Excel (ativação de Macros).
Depois disso, o código que estava gerando o erro deve passar a funcionar. Se for preciso, reabra o arquivo com os controles/macros ativadas.