Neste artigo você aprenderá como esconder dos usuários as macros na interface do Excel passo-a-passo com imagens.
1. Introdução
Pastas de trabalho no Excel que normalmente contém macros as exibem na interface normal do usuário, conforme mostra a imagem seguinte.
Esta relação de macros é facilmente localizada e visível através da guia Desenvolvedor, ou até mesmo através do atalho ALT + F8. Esta exposição irrestrita se torna inconveniente, especialmente quando usuários desavisados podem executar alguns procedimentos e rotinas que ocasionem danos aos trabalhos.
A boa notícia é que as macros disponíveis na pasta de trabalho podem ser facilmente omitidas dos usuários, conferindo assim mais segurança para o projeto. Para isso, o próprio Visual Basic dispõe de alternativa, que consiste basicamente em simples alterações dos códigos, com algumas instruções complementadas. Isto permite que as macros sejam devidamente escondidas dos usuários, o que pode ser muitas vezes conveniente para evitar danos acidentais ou usos indesejados.
As instruções para este fim estão descritas a seguir neste artigo.
P.S: aqui estamos tratando do contexto de exibição das macros na interface “normal” do Excel, e não no VBE. Para esconder no VBE, podemos e devemos realizar outras ações, como inserir uma senha ao projeto, por exemplo.
2. Como esconder as macros dos usuários?
Para este fim devemos acessar o VBE – Visual Basic Editor. Isto pode ser facilmente realizado através do atalho ALT + F11 ou através da guia Desenvolvedor > Visual Basic.
Podemos esconder macros de duas formas: omitir todas as macros de um módulo ou omitir individualmente cada macro.
2.1. Escondendo o módulo inteiro
Considere a seguir a imagem em que nota-se a existência de 3 módulos.
Veja a imagem seguinte o módulo Rotinas selecionado. Este módulo possui 3 macros em sua composição (Backup, GerarTxt e Imprimir).
Note que, na imagem seguinte, através da interface de usuário do Excel, estas 3 rotinas estão plenamente disponíveis para execução direta, o que pode ser uma permissão potencialmente indesejada.
Para omitir todo este módulo (que abrange estas 3 macros), tudo o que precisamos fazer inserir, bem no começo do módulo, uma linha com a instrução “Option Private Module”, antes da primeira rotina. A imagem a seguir ilustra esta alteração.
A imagem a seguir nos revela o êxito neste procedimento. As 3 rotinas do módulo (Backup, GerarTxt e Imprimir) não mais estão visíveis para os usuários, o que a priori já impede a sua direta execução.
P.S: para este módulo estarão escondidas tanto as rotinas já existentes quanto as novas rotinas eventualmente criadas.
2.2. Escondendo macros individualmente
Além de ocultar todo um módulo, podemos também ocultar individualmente e pontualmente macros, uma a uma. Isto pode ser útil quando não desejamos ocultar um ou mais módulos inteiros.
A alteração que precisamos fazer para ocultar uma macro é simples: basta escrever o termo “Private” antes do nome da macro. Ou seja: uma rotina nomeada como Sub PDF, por exemplo, deverá ser alterada para Private Sub PDF. Como consequência ela não ficará mais disponível na interface do Excel.
Veja a constatação dessa alteração: a rotina PDF se torna indisponível.