VBA – Verificando se o projeto (VBAProject) está protegido

Mais uma que pode ajudar a proteger seus projetos em VBA. Com essa verificação, é possível fazer com que a proteção do projeto seja requisito para seu funcionamento.

Bom, vamos ao código:

'É necessário adicionar referência ao
'Microsoft Visual Basic for Applications Extensibilty Library
Function VBAProjectIsProtected() As Boolean
    Dim oVBP As VBIDE.VBProject
    Dim IsProtected As Boolean
 
    'Verifica se o projeto está bloqueado
    IsProtected = (Application.VBE.ActiveVBProject.Protection = vbext_pp_locked)
 
    VBAProjectIsProtected = IsProtected
End Function

Como é uma Function, é possível testar seu funcionamento em uma célula do Excel, bastando digitar: =VBAProjectIsProtected(). O resultado é o valor VERDADEIRO caso o projeto esteja protegido, FALSO do contrário.

O mais bacana é que o resultado só é verdadeiro se o projeto estiver além de protegido por senha, fechado para visualização. Se o projeto for aberto para visualização, indo ao VBA e informando a senha de acesso, a função passa a retornar FALSO. Com isso, tem-se a total garantia de que o projeto esteja mesmo na condição de protegido, podendo a partir daí, tomar qualquer providência, desde mostrar uma mensagem, fechar o aplicativo ou até mesmo excluir um módulo do VBA.

Referências:

http://www.mrexcel.com/forum/showthread.php?t=18539

Bom proveito!

Comentários

comentários