vba code to unprotect Excel worksheets

vba code to unprotect Excel worksheets

May 21, 2020

On the Review tab of Excel, you will find the option to password protect a worksheet.  [Note that if you choose the option to protect the workbook, this will only prevent worksheets and other structural elements of the Excel file from being changed or removed.  It will not prevent the data on a worksheet from being copied and edited.}  It's not uncommon to come across Excel files in document productions that have password protected worksheets.  When you try to select data on the worksheet, you'll get this message:



Excel does not use strong encryption, and most passwords can be cracked using the VBA code posted here, and copied below.   The macro will actually change the password to a sequence of As and Bs, and not reveal the actual password.   The new password will be displayed in a dialog box.  Click OK, and then the worksheet will be fully editable. 




I tested this macro tonight on a workbook protected with Excel 2019 using a four-digit number, a dictionary word, a short phrase, and an eight character alphanumeric code and it cracked each one in seconds. 




Sub PasswordBreaker()

    'Breaks worksheet password protection.


    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 "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







Please reload

Contact Me With Your Litigation Support Questions:


  • Twitter Long Shadow

© 2015 by Sean O'Shea . Proudly created with Wix.com