Você precisa bloquear ou desbloquear várias planilhas em um arquivo do Excel. Proteger manualmente cada planilha é lento e sujeito a erros. A interface do Excel não possui um botão único para proteger todas as planilhas. Este artigo explica como usar uma macro VBA para proteger ou desproteger todas as planilhas do seu workbook com um clique.
Principais pontos: Proteger ou desproteger todas as planilhas
- Desenvolvedor > Visual Basic > Inserir Módulo: Abre o editor VBA para colar o código da macro de proteção em lote.
- Alt + F8: Abre a caixa de diálogo Macro para executar a macro que protege ou desprotege todas as planilhas.
- Arquivo > Salvar como > Pasta de Trabalho Habilitada para Macro do Excel (.xlsm): Salva o formato de arquivo necessário para armazenar e reutilizar a macro VBA.
Usando uma macro VBA para proteção em lote de planilhas
O recurso de proteção padrão do Excel se aplica apenas à planilha ativa. Para proteger todas as planilhas, você precisa escrever uma macro em Visual Basic for Applications. Uma macro automatiza a tarefa percorrendo cada planilha do workbook. Você pode atribuir uma senha ou deixar em branco para um bloqueio simples. A macro também pode desproteger todas as planilhas se elas já estiverem protegidas.
Pré-requisitos para executar macros
Seu arquivo do Excel deve ser salvo como uma pasta de trabalho habilitada para macro, com a extensão .xlsm. Você também deve habilitar a guia Desenvolvedor na faixa de opções. As macros são desabilitadas por padrão por segurança. Talvez seja necessário ajustar as configurações da Central de Confiabilidade para permitir a execução de macros.
Passos para criar e executar a macro de proteção
- Habilitar a guia Desenvolvedor
Vá em Arquivo > Opções > Personalizar Faixa de Opções. No painel direito, marque a caixa Desenvolvedor. Clique em OK. - Abrir o editor VBA
Clique na guia Desenvolvedor. No grupo Código, clique em Visual Basic. Você também pode pressionar Alt + F11. - Inserir um novo módulo
No editor VBA, no menu, clique em Inserir > Módulo. Uma janela de código em branco aparecerá. - Colar o código da macro
Copie e cole o seguinte código na janela do módulo.Sub ProtegerTodasPlanilhas()
Dim ws As Worksheet
Dim pwd As String
pwd = InputBox("Digite uma senha (deixe em branco para sem senha):", "Proteger Todas as Planilhas")
For Each ws In ThisWorkbook.Worksheets
ws.Protect Password:=pwd
Next ws
MsgBox "Todas as planilhas foram protegidas."
End SubSub DesprotegerTodasPlanilhas()
Dim ws As Worksheet
Dim pwd As String
pwd = InputBox("Digite a senha para desproteger:", "Desproteger Todas as Planilhas")
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect Password:=pwd
Next ws
MsgBox "Todas as planilhas foram desprotegidas."
End Sub - Fechar o editor VBA
Clique no X no canto superior direito ou pressione Alt + Q para retornar ao Excel. - Executar a macro
Clique em Desenvolvedor > Macros ou pressione Alt + F8. Selecione ProtegerTodasPlanilhas ou DesprotegerTodasPlanilhas na lista. Clique em Executar. - Digite uma senha se solicitado
Uma caixa de diálogo aparecerá. Digite uma senha para proteção ou desproteção. Clique em OK. Uma mensagem confirma que a ação foi concluída. - Salvar a pasta de trabalho
Vá em Arquivo > Salvar como. Escolha um local. Em Tipo de arquivo, selecione Pasta de Trabalho Habilitada para Macro do Excel (*.xlsm). Clique em Salvar.
Erros comuns e limitações
Macro falha com “Erro em tempo de execução ‘1004’”
Esse erro geralmente significa que a macro tentou proteger uma planilha de gráfico ou uma planilha muito oculta. O código fornecido percorre apenas planilhas padrão. Modifique a linha de código “For Each ws In ThisWorkbook.Worksheets” para “For Each ws In ThisWorkbook.Sheets” para incluir planilhas de gráfico.
Senha esquecida para desproteção
A macro DesprotegerTodasPlanilhas exige a senha correta. A proteção de planilha do Excel não é uma criptografia forte. Se você esquecer a senha, não poderá usar a macro. Você precisaria usar uma ferramenta de recuperação de senha de terceiros ou recriar a pasta de trabalho.
A macro não protege a estrutura da pasta de trabalho
Esta macro protege o conteúdo das planilhas contra edição. Ela não protege a estrutura da pasta de trabalho, como impedir a exclusão de planilhas. Para isso, use Revisão > Proteger Pasta de Trabalho. Você pode executar ambas as proteções para segurança completa.
Método manual vs. macro VBA: principais diferenças
| Item | Proteção Manual | Macro VBA |
|---|---|---|
| Tempo necessário | Alto: é preciso repetir as etapas para cada planilha | Baixo: configuração única, execução instantânea |
| Consistência da senha | Risco de usar senhas diferentes por planilha | Garante que a mesma senha seja aplicada a todas as planilhas |
| Nível de habilidade necessário | Conhecimento básico do Excel | Exige copiar código e habilitar macros |
| Reutilização | As etapas devem ser repetidas para cada pasta de trabalho | A macro pode ser salva no Personal.xlsb para uso em qualquer pasta de trabalho |
| Tratamento de erros | Nenhum: o usuário precisa perceber se uma planilha foi esquecida | Loop automatizado garante que nenhuma planilha seja pulada |
Agora você pode proteger uma pasta de trabalho inteira do Excel com um único comando. Use a macro ProtegerTodasPlanilhas para aplicar configurações de segurança uniformes. Para uso avançado, atribua a macro a um botão na Barra de Ferramentas de Acesso Rápido. Isso permite proteger todas as planilhas sem abrir a guia Desenvolvedor.