Posso proteger com senha uma macro do Excel?

4

Sei que é possível proteger com senha uma pasta de trabalho inteira do Excel com senha, mas posso abrir a pasta de trabalho (sem senha) e, no entanto, proteger apenas a macro?

(Estou usando o Excel 2007.)

Atualização: para ser claro, estou procurando proteger com senha o acesso à visualização da macro, não à execução. Portanto, todos devem poder executá-lo, mas somente eu posso acessar o código-fonte.

Wikis
fonte

Respostas:

3

Para adicionar à resposta do @ music2myear, você também pode proteger o código VBA da pasta de trabalho, para que o usuário não possa lê-lo para obter a senha. No VBE, clique com o botão direito do mouse no projeto, escolha Propriedades do VBAProject e clique na guia Proteção.

Doug Glancy
fonte
+1 melhor abordagem, pois requer conhecimento de outras ferramentas / técnicas para quebrar uma senha VBA, ao passo que um pouco de conhecimento VBA poderia desativar a verificação de senha código
brettdj
Obrigado, isso funciona. Observe que é necessário marcar a caixa de seleção Bloquear projeto para exibição . Pergunta relacionada: parece que preciso criar uma nova macro para desbloquear e ler a macro existente. Não existe uma maneira mais fácil?
Wikis
2

Você pode fazer a macro solicitar uma senha. Desde que o usuário não tenha as costeletas para procurar a senha no próprio código VBA, isso pode ser muito, muito fácil.

Basta usar um InputBox para solicitar a senha. Se a entrada corresponder a uma determinada sequência, você permitirá que a macro continue.

Você pode torná-lo mais complexo, mas ainda relativamente simples, convertendo o texto da senha em números e executando operações matemáticas nesses números para criar um "hash" simples. Depois, basta pegar qualquer entrada e executar as mesmas operações antes de executar a comparação.

Este link mostra como você pode usar esse método para verificar várias senhas possíveis e fazer coisas diferentes com base nelas: http://www.ozgrid.com/forum/showthread.php?t=68186&page=1

Este link mostra como substituir o texto de entrada por asteriks como uma caixa de senha "real": http://www.xcelfiles.com/API_09.html

music2myear
fonte
resposta muito boa! +1
studiohack