Como remover a palavra-passe de uma folha Excel?

Como remover a palavra-passe de uma folha Excel?

Última verificação: 20 de setembro de 2026
9 min de leitura
Tutorial

A proteção de folha no Excel não é o mesmo que encriptar o ficheiro inteiro. Se esqueceu a palavra-passe de Proteger folha (Protect Sheet) num livro que lhe pertence, uma técnica VBA conhecida - PasswordBreaker - pode encontrar uma colisão no hash fraco de 16 bits e desbloquear a folha. O método não ajuda contra palavras-passe de abertura, encriptação do livro nem ficheiros que não tem direito a alterar.

Use isto só nos seus próprios livros, ou quando o proprietário lhe pediu ajuda. Contornar a proteção de documentos alheios sem permissão é ilegal.

#Proteção de folha versus encriptação de ficheiro

O Excel tem várias camadas de «palavra-passe», e confundem-se com frequência.

Proteção de folha limita a edição de células, fórmulas, linhas e colunas numa folha. A Microsoft descreve a função em Proteger uma folha de cálculo. A palavra-passe serve aqui para travar alterações acidentais, não como criptografia forte. Historicamente o valor de controlo é guardado como um hash curto. Por isso uma procura por força bruta de colisões é prática.

Estrutura do livro também pode ser protegida (bloquear separadores, impedir inserir/eliminar folhas). Isso continua a não ser encriptação de ficheiro.

Encriptação de ficheiro / palavra-passe de abertura encripta o conteúdo para que o ficheiro não possa ser lido sem a palavra-passe correta. A Microsoft documenta isto em separado em Proteger um ficheiro Excel. A PasswordBreaker e macros semelhantes não chegam a esta camada. Se esqueceu a palavra-passe de abertura, precisa de uma cópia sem encriptação, do seu arquivo de palavras-passe, ou da recuperação oficial para ficheiros seus - não da macro de folha deste artigo.

Em resumo: proteção de folha = bloqueio de edição com hash fraco. Encriptação de ficheiro = encriptação real. Este guia cobre só o primeiro.

#Porque a PasswordBreaker funciona: colisão de hash de 16 bits

A proteção clássica de folha no Excel não compara a palavra-passe carácter a carácter contra uma tabela de chaves fortes. Compara um hash de 16 bits do que escreve com o hash guardado quando a folha foi protegida.

Um valor de 16 bits tem apenas 65 536 resultados possíveis. Muitas cadeias de palavra-passe diferentes dão o mesmo número. Quando ActiveSheet.Unprotect recebe uma cadeia que acerta o mesmo hash, aceita-a - mesmo que não seja a palavra-passe original.

A PasswordBreaker usa isto de forma prática: a macro tenta sistematicamente combinações curtas até ProtectContents passar a False. Depois reporta uma cadeia funcional. É uma colisão de hash, não «partir» encriptação AES moderna.

Esta é uma propriedade antiga e conhecida da proteção de folha. A API VBA de desbloqueio é Worksheet.Unprotect (documentação). Quando conhece ou encontra uma palavra-passe aceite (ou uma colisão), é a mesma API que o Excel usa.

#Pré-requisitos antes de começar

  1. É o proprietário do ficheiro, ou tem autorização escrita ou oral do proprietário.
  2. O ficheiro abre sem palavra-passe de abertura (caso contrário o problema é encriptação, não proteção de folha).
  3. As macros estão permitidas neste livro.
  4. Tem acesso ao editor VBA (Alt+F11 no Windows; no Mac: Ferramentas > Macro > Editor do Visual Basic, conforme a versão do Excel).

Faça primeiro uma cópia. A macro escreve a cadeia encontrada na célula A1 da primeira folha. Numa cópia isso não prejudica dados de produção.

#Como executar a PasswordBreaker

  1. Abra o ficheiro Excel e ative a folha protegida.
  2. Prima Alt+F11 para abrir o editor VBA.
  3. Escolha Inserir > Módulo.
  4. Cole o código abaixo na janela do módulo.
  5. Coloque o cursor dentro de PasswordBreaker e prima F5 (ou Executar > Executar Sub/UserForm).
  6. Espere até a caixa de mensagem mostrar uma cadeia utilizável. A folha deve ficar desbloqueada.

Excel Password Breaker Illustration

Sub PasswordBreaker()
    Dim i As Integer, j As Integer, k As Integer
    Dim l As Integer, m As Integer, n As Integer
    Dim i1 As Integer, i2 As Integer, i3 As Integer
    Dim i4 As Integer, i5 As Integer, i6 As Integer
    On Error Resume Next
    For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
    For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
    For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
    For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
        ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
            Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
            Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
        If ActiveSheet.ProtectContents = False Then
            MsgBox "One usable password is " & Chr(i) & Chr(j) & _
                Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
                Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
            ActiveWorkbook.Sheets(1).Select
            Range("a1").FormulaR1C1 = Chr(i) & Chr(j) & _
                Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
                Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
            Exit Sub
        End If
    Next: Next: Next: Next: Next: Next
End Sub

#O que o código faz, linha a linha

  • Ciclos For aninhados constroem cadeias candidatas a partir de códigos de carácter (sobretudo A/B nas primeiras posições, depois um conjunto mais largo na última).
  • Cada candidata é enviada a ActiveSheet.Unprotect.
  • Quando ProtectContents é False, o hash foi atingido. A macro mostra a cadeia e termina.
  • On Error Resume Next salta erros quando uma tentativa falha; isso é esperado durante a procura.

A execução pode demorar de alguns segundos a alguns minutos, conforme a máquina e a versão do Excel. Não precisa de «encontrar» a palavra-passe original - só uma colisão.

#Depois do desbloqueio: remova a proteção a sério

Quando a folha estiver aberta, vá a Rever > Desproteger folha se o botão ainda estiver ativo, ou volte a proteger a folha com uma palavra-passe que guarde num gestor. Não confie em que a cadeia de colisão seja fácil de memorizar.

#Mostrar uma folha oculta

Desbloquear a proteção não é o mesmo que mostrar uma folha oculta. Se a folha estiver só oculta (não VeryHidden):

  1. No separador Base, no grupo Células, clique em Formatar.
  2. Em Visibilidade, escolha Ocultar e Mostrar, depois Mostrar Folha.
  3. No diálogo Mostrar, faça duplo clique no nome da folha.

Só pode mostrar uma folha de cada vez.

Se a folha foi ocultada com VBA via xlSheetVeryHidden, Mostrar não funciona. Tem de alterar a propriedade no editor VBA (Properties da folha), ou o proprietário do livro tem de o fazer. Não assuma que a PasswordBreaker resolve VeryHidden - é outro mecanismo.

#Notas para Microsoft 365 e Excel recente

O Microsoft 365 e as builds atuais do Excel (Windows e Mac) continuam a suportar proteção de folha e VBA Unprotect em livros clássicos. Limites práticos:

  • Segurança de macros. Ficheiros descarregados da Web ou do e-mail podem abrir em Vista Protegida. Tem de ativar a edição e permitir macros na sua própria cópia antes de o VBA correr.
  • Centro de confiança. As organizações podem bloquear todas as macros por política. Nesse caso a TI tem de as permitir, ou corre a recuperação numa máquina onde tem direitos.
  • Mac. O VBA existe no Excel para Mac, mas atalhos e menus diferem do Windows. A lógica de Unprotect é a mesma.
  • Excel na Web / telemóvel. O cliente Web e as apps móveis não dão VBA completo. Use o Excel de ambiente de trabalho.
  • Bloqueios mais fortes. Fluxos como IRM, etiquetas de confidencialidade ou encriptação real de ficheiro ficam fora desta macro. Não espere que uma colisão de hash os abra.

Se Unprotect nunca acertar e o ficheiro já pediu palavra-passe ao abrir, tem encriptação de ficheiro - pare aqui e use o caminho de recuperação correto para os seus ficheiros encriptados.

#Erros comuns e limites

  • Camada errada. Testa a macro num ficheiro encriptado. Não vai ajudar.
  • Folha ativa errada. A macro corre contra ActiveSheet. Ative o separador certo primeiro.
  • Projeto VBA bloqueado. Uma palavra-passe à parte no projeto VBA não é proteção de folha. A PasswordBreaker não resolve isso.
  • Partilhado / só de leitura. Guarde uma cópia local que possa alterar.
  • Esperar a palavra-passe original. A caixa de mensagem mostra uma colisão. Basta para desbloquear; não prova o que alguém escreveu em 2019.

#Ética e propriedade

A técnica é publicamente conhecida porque o hash da proteção de folha é demasiado fraco para proteger segredos. Foi feita para impedir edição acidental, não para esconder dados de estranhos.

Use-a para recuperar as suas próprias folhas - orçamentos antigos, listas de stock ou modelos cuja palavra-passe se perdeu. Não a use contra ficheiros alheios, livros roubados ou documentos a que só tem acesso temporário. Se alguém lhe pedir para «desbloquear» um ficheiro que não possui, recuse.

Para segredos que têm mesmo de ficar secretos: encriptação de ficheiro, controlo de acesso no SharePoint/OneDrive, ou um repositório de segredos dedicado - não só proteção de folha.

#Exemplo prático: palavra-passe esquecida na sua própria folha de orçamento

Herda um .xlsx de um colega que saiu. O ficheiro abre sem pergunta. As fórmulas estão visíveis, mas as células estão bloqueadas e Desproteger folha pede uma palavra-passe que ninguém lembra. Isso é proteção de folha.

Copia o ficheiro para folha-copia.xlsx, permite macros, cola a PasswordBreaker, executa-a na folha certa, anota a cadeia de colisão, remove a proteção e grava sem palavra-passe (ou com uma nova no gestor). Depois apaga o módulo da macro se já não precisares dele.

Se o Excel tivesse pedido palavra-passe já ao fazer duplo clique no ficheiro, teria parado. Nesse caso o conteúdo está encriptado e este artigo não se aplica.

#Quando deve perguntar ao proprietário

Alguns livros fazem parte de um sistema de contabilidade, de um modelo de contrato ou de uma biblioteca SharePoint partilhada. Mesmo que possa desbloquear uma folha tecnicamente, as regras internas podem exigir que a TI ou o proprietário o façam. Documente data, nome do ficheiro e que era proteção de folha.

Se não tiver a certeza da propriedade, não execute a macro. Peça uma exportação sem proteção, ou que o proprietário remova a proteção.

#Resumo curto

  1. Confirme que o problema é proteção de folha, não encriptação de ficheiro.
  2. Trabalhe só em ficheiros seus (ou autorizados); faça uma cópia.
  3. Execute a PasswordBreaker via VBA para encontrar uma colisão de hash de 16 bits.
  4. Guarde uma nova palavra-passe memorável - ou remova a proteção se não precisar dela.
  5. Para ficheiros encriptados: outro processo, outras ferramentas, o mesmo requisito de propriedade.

As páginas da Microsoft sobre proteção de folha, Worksheet.Unprotect e proteção de ficheiro são os pontos de referência quando precisa de separar as camadas.

Próximo passo

Transforme o artigo numa implementação real

Este bloco reforça a ligação interna e conduz o leitor para o passo seguinte mais útil dentro da arquitetura do site.

Cluster relacionado

Explorar outros serviços WordPress e base de conhecimento

Reforce o seu negócio com suporte técnico profissional em áreas-chave do ecossistema WordPress.

A PasswordBreaker funciona em ficheiros Excel encriptados (.xlsx com palavra-passe de abertura)?#
Não. A macro só ataca a proteção de folha (Proteger folha). A encriptação de ficheiro e a palavra-passe de abertura do livro usam outro mecanismo. Nesse caso precisa da palavra-passe correta, de uma cópia de segurança sem encriptação, ou do caminho oficial da Microsoft para ficheiros seus - não desta macro.
Porque é que a macro mostra uma palavra-passe que não se parece com a que lembro?#
A proteção de folha guarda um hash fraco de 16 bits, não a palavra-passe real. Muitas cadeias diferentes dão o mesmo hash. A PasswordBreaker encontra uma colisão que o Unprotect aceita. Essa cadeia é uma chave funcional, não necessariamente a original.
Quando é que esta macro não ajuda?#
Não ajuda contra encriptação de ficheiro, palavras-passe de projeto VBA nem folhas com xlSheetVeryHidden. Folhas VeryHidden não se recuperam só com Mostrar. O diálogo Mostrar folha também mostra uma folha de cada vez. Se houver problemas num livro com macros de outrem: contacte o proprietário.
O método funciona no Microsoft 365 e no Excel recente?#
Sim para proteção clássica de folha na folha que tem aberta, desde que as macros estejam permitidas e o editor VBA esteja disponível. O Microsoft 365 pode bloquear macros da Internet ou de origens desconhecidas. Nesse caso tem de permitir macros no seu próprio ficheiro, ou mover o código para um livro local de confiança antes de o executar na folha.
É legal usar esta técnica?#
Use-a só em ficheiros que possui ou para os quais tem autorização explícita de desbloqueio. Contornar a proteção de documentos alheios sem permissão é ilegal e antiético. Este artigo descreve uma fragilidade conhecida da proteção de folha para recuperação própria, não acesso ilícito.

Precisa de FAQ adaptado ao setor e mercado? Criamos uma versão alinhada com os seus objetivos de negócio.

Fale connosco

Artigos Relacionados