Remove Password from VBA Project in Excel

Sumit Bansal
Written by

Sumit Bansal is the founder of TrumpExcel.com and a 13-time Microsoft Excel MVP. He started this site in 2013 to share his passion for Excel through easy tutorials, tips, and training videos, helping you master Excel, boost productivity, and maybe even enjoy spreadsheets!

Last updated

If you have an Excel file with a locked VBA project and you don’t know the password, you can’t open the code to view or edit it.

The good news is that you can remove that password, and you don’t need the original one to do it.

In this article, I’ll show you the fastest way, using a free tool that runs right in your browser.

I’ll also cover two manual methods (a VBA macro and a free hex editor) in case you’d rather do it yourself.

Click here to download the example file and follow along

Free Tool to Remove a VBA Project Password (Online)

If you don’t want to get into the hassle of removing the password yourself, here’s a free tool you can use.

All you have to do is pick the Excel file that has the locked VBA project, and it does the work for you and gives you back the unlocked file.

VBA Password Remover (Free Tool)
Drop your Excel file here
.xlsm, .xlsb, .xlam or .xls file
  • Runs in your browser
  • Your file is never uploaded
  • 100% free
Made by TrumpExcel.com

Here is how it works:

  1. Click the box above and select your file (or just drag it onto the box).
  2. The tool opens the file right there in your browser and removes the VBA project password.
  3. Click Download unlocked file to save the copy that has the password removed.

Open that downloaded file in Excel, go into the VB Editor (ALT + F11), and you’ll be able to view and edit the code with no password prompt.

Nothing leaves your computer. The whole thing happens inside your browser, so your file is never uploaded to a server. It works with .xlsm, .xlsb, .xlam, and the older .xls files.

A couple of things to keep in mind:

  • This removes the VBA project password (the one that stops you from viewing the code). It’s not for the password that Excel asks for when you first open the file. If the file itself needs a password just to open, the tool will let you know it can’t help with that one.
  • If your file was already saved without a VBA project password, there’s nothing to remove, and the tool will tell you that too.

This tool is only for the VBA project (the code). If it’s a locked worksheet or workbook you’re trying to get into instead, use the free tool in how to unprotect Excel sheets without the password.

One quick note before you start. Only use these methods on files you own or have permission to open. They’re meant for getting back into your own work.

If you’d rather remove the password yourself instead of using the tool, the two methods below do the same thing manually.

Remove VBA Password with VBA Code (64 Bit Excel)

Better safe than sorry. Always create a backup copy of your file before trying any of the following methods.

Disclaimer: I did not create this VBA code, and the credit for it goes to a Vietnamese developer, Siwtom (which was further refined by another user). I copied this code from the following link – https://stackoverflow.com/questions/1026483/is-there-a-way-to-crack-the-password-on-an-excel-vba-project/31005696#31005696

Below is the VBA code you can use in 64-bit Excel to unlock VBA projects and remove passwords:

Private Const PAGE_EXECUTE_READWRITE = &H40Private Declare PtrSafe Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" _    (Destination As LongPtr, Source As LongPtr, ByVal Length As LongPtr)Private Declare PtrSafe Function VirtualProtect Lib "kernel32" (lpAddress As LongPtr, _    ByVal dwSize As LongPtr, ByVal flNewProtect As LongPtr, lpflOldProtect As LongPtr) As LongPtrPrivate Declare PtrSafe Function GetModuleHandleA Lib "kernel32" (ByVal lpModuleName As String) As LongPtrPrivate Declare PtrSafe Function GetProcAddress Lib "kernel32" (ByVal hModule As LongPtr, _    ByVal lpProcName As String) As LongPtrPrivate Declare PtrSafe Function DialogBoxParam Lib "user32" Alias "DialogBoxParamA" (ByVal hInstance As LongPtr, _    ByVal pTemplateName As LongPtr, ByVal hWndParent As LongPtr, _    ByVal lpDialogFunc As LongPtr, ByVal dwInitParam As LongPtr) As IntegerDim HookBytes(0 To 11) As ByteDim OriginBytes(0 To 11) As ByteDim pFunc As LongPtrDim Flag As BooleanPrivate Function GetPtr(ByVal Value As LongPtr) As LongPtrGetPtr = ValueEnd FunctionPublic Sub RecoverBytes()If Flag Then MoveMemory ByVal pFunc, ByVal VarPtr(OriginBytes(0)), 12End SubPublic Function Hook() As BooleanDim TmpBytes(0 To 11) As ByteDim p As LongPtr, osi As ByteDim OriginProtect As LongPtrHook = False#If Win64 Then    osi = 1#Else    osi = 0#End IfpFunc = GetProcAddress(GetModuleHandleA("user32.dll"), "DialogBoxParamA")If VirtualProtect(ByVal pFunc, 12, PAGE_EXECUTE_READWRITE, OriginProtect) <> 0 Then    MoveMemory ByVal VarPtr(TmpBytes(0)), ByVal pFunc, osi + 1    If TmpBytes(osi) <> &HB8 Then        MoveMemory ByVal VarPtr(OriginBytes(0)), ByVal pFunc, 12        p = GetPtr(AddressOf MyDialogBoxParam)        If osi Then HookBytes(0) = &H48        HookBytes(osi) = &HB8        osi = osi + 1        MoveMemory ByVal VarPtr(HookBytes(osi)), ByVal VarPtr(p), 4 * osi        HookBytes(osi + 4 * osi) = &HFF        HookBytes(osi + 4 * osi + 1) = &HE0        MoveMemory ByVal pFunc, ByVal VarPtr(HookBytes(0)), 12        Flag = True        Hook = True    End IfEnd IfEnd FunctionPrivate Function MyDialogBoxParam(ByVal hInstance As LongPtr, _    ByVal pTemplateName As LongPtr, ByVal hWndParent As LongPtr, _    ByVal lpDialogFunc As LongPtr, ByVal dwInitParam As LongPtr) As IntegerIf pTemplateName = 4070 Then    MyDialogBoxParam = 1Else    RecoverBytes    MyDialogBoxParam = DialogBoxParam(hInstance, pTemplateName, _        hWndParent, lpDialogFunc, dwInitParam)    HookEnd IfEnd FunctionSub UnprotectVBA()    If Hook Then        MsgBox "VBA Project is unprotected!", vbInformation, "VBA Unlocked"    End IfEnd Sub

If using 32-bit Excel, you can try using the code here. Since I have 64-bit Excel, I have not tested the code for 32-bit Excel.

Here is how you can check what version of Excel you have.

Below are the steps to use this VB macro code to unlock VBA projects:

  1. Keep the Excel file open that has the VBA project that you want to unlock.
  1. Open a new Excel file.
  1. Open the VB editor in this new Excel file (you can use the keyboard shortcut ALT + F11, or you can go to the Developer tab and then click on the Visual Basic icon).
  1. In the VB editor, insert a new module (this should be for this new Excel file we have opened that does not have the locked VBA project).
Insert a new module
  1. Copy and paste the above VBA code into this newly inserted module.
Copy paste the VBA code in the module code window
  1. Place the cursor anywhere in the UnprotectVBA subroutine.
Place the cursor in the code you want to run
  1. Run the macro code. You can do this by pressing the F5 key on your keyboard or by clicking on the run macro icon in the VB editor toolbar.

As soon as you run the macro, you should see a message box that says – VBA Project is unprotected!

VBA project unlocked message box

Close the message box and go back into the VB editor, and the VB project should now be unlocked.

I tried this on my system with a couple of different locked VBA project Excel files, and it worked. However, some users have reported that it didn’t work for them.

So give this a try, and if it doesn’t work, you can use the next method, which uses a Hex Editor to unprotect a VBA project.

Remove VBA Password Using a HEX Editor

Better safe than sorry – This method edits your actual file, so always create a backup copy before you start.

Another free and easy way to remove the VBA password from your Excel file is by using a HEX editor.

A HEX editor is a free lightweight third-party tool that allows you to edit the binary data that makes up a VBA project in Excel.

In this method, we open the VBA project within the HEX editor. We replace the password that we do not know with a password that we do know, so that we can unlock the project with that known password.

You can download a free HEX editor called HxD from the official HxD website.

Below are the steps to replace the password using the HEX editor:

  1. Go to the folder where you have the Excel file with the VBA project that you want to unlock.
  1. Change the file extension from .XLSM to .ZIP. This will convert your Excel file into a zip folder.
Converted xlsm file to zip file
  1. Open the zip folder, locate the XL folder, and double-click on it to open it.
Find XL Folder
  1. Locate the vbaProject.bin file, copy it, and paste the copy outside of the zip folder (so we can make changes to this file).
Copy VBProject Bin file
  1. Open the HEX editor.
  1. Open the vbaProject.bin file in the HEX editor. You’ll see the binary information of the file being displayed in the HEX editor.
File opened in Hex Editor
  1. Hold the Control key and press the F key. This will open the Find dialog box.
Find dialog box in Hex Editor
  1. Search for the term DPB (enter DPB in the Find field and click OK). You’ll notice that there is a binary code after the DPB within quotes (highlighted in red below).
  1. Replace the code in the double quotes with 0A08A6B1B6CEB6CE4932B7CE4B63A66D37B84BA3D4BAD58A6B495254585A5D3D675777675D
Code in double codes to unlock VBA password

If the length of the code that is already there in the Hex editor is different from the one I have provided above, add a couple of zeros to the above code to make the length similar.

  1. Save the file and close the hex editor.
  1. Copy the vbaProject.bin file in which we have made the changes. Then go back into the xl folder within the zip folder, and replace the original vbaProject.bin file with the one you copied.
  1. Change the extension of the folder from .zip back to .xlsm.
  1. Open the Excel file and then open the VB Editor.
  1. Enter 123 as the password to unlock the VB Project.

You can keep the VB project locked and use 123 as the password, or you can first unlock the VB project and then remove the password altogether.

So these are three simple ways to remove the password from a VBA project.

The free tool at the top is the quickest, since it does everything for you in the browser.

If you’d rather do it yourself, try the VBA code first, and if for some reason that doesn’t work, then you can use the hex editor method.

I hope you found this article helpful. If you know of any other method that can be used to unprotect locked VB projects, do share it with us all in the comment section.

Other Excel articles you may also like:

Sumit Bansal

Sumit Bansal

13x Microsoft Excel MVP

Hey! I'm Sumit Bansal, founder of trumpexcel.com and a Microsoft Excel MVP. I started this site in 2013 because I genuinely love Microsoft Excel (yes, really!) and wanted to share that passion through easy Excel tutorials, tips, and Excel training videos. My goal is straightforward: help you master Excel skills so you can work smarter, boost productivity, and maybe even enjoy spreadsheets along the way!

Get the FREE 51 Excel Tips Ebook

Enter your details and the free PDF is on its way to your inbox.

Hmm, that didn't go through. Please check your email and try again.

No spam. You'll also get my weekly Excel newsletter. Unsubscribe anytime.

Check your inbox!

The ebook is on its way to your email. It usually lands within a couple of minutes.