El siguiente código en VisualBasic para Excel permite desproteger la hoja de Excel encontrando un password válido para su desprotección.

Lo curioso del caso es que no necesariamente es el password que la hoja tenía originalmente pero que es válido igualmente.

Pasos a seguir:
1.- Copiar el código de abajo y pegarlo meniante el editor de VisualBasic en un módulo del mismo libro que se desea desproteger (El editor se abre con ALT+F11)
2.- Cerrar el editor
3.- Seleccionar la hoja que se quiere desproteger
4.- Ejecutar la macro “Breakit” (ALT+F8 para abrir el cuadro de macros)
5.- Aparece un mensaje con un password y la hoja habrá quedado desprotegida.

Probado con éxito en Excel 97 y Excel 2003.

Código

Sub breakit()
Dim i As Integer, j As Integer, k As Integer

Dim l As Integer, m As Integer, n 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)
Exit Sub
End If
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub

Visto en la Bitácora de Rodri.
.