Removing the password from a VBA project
VbaSecurityExcelPassword ProtectionVba Problem Overview
How can I programmatically remove a (known) password from an Excel VBA project?
To be clear: I want to remove the password from the VBA Project, not the workbook or any worksheets.
Vba Solutions
Solution 1 - Vba
Another way to remove VBA project password is;
- Open xls file with a hex editor. (ie. Hex Edit http://www.hexedit.com/)
- Search for DPB
- Replace DPB to DPx
- Save file.
- Open file in Excel.
- Click "Yes" if you get any message box.
- Set new password from VBA Project Properties.
- Close and open again file, then type your new password to unprotect.
UPDATE: For Excel 2010 (Works for MS Office Pro Plus 2010 [14.0.6023.1000 64bit]),
- Open the XLSX file with 7zip
If workbook is protected:
- Browse the folder
xl
- If the workbook is protected, right click
workbook.xml
and select Edit - Find the portion
<workbookProtection workbookPassword="XXXX" lockStructure="1"/>
(XXXX
is your encrypted password) - Remove
XXXX
part. (ie.<workbookProtection workbookPassword="" lockStructure="1"/>
) - Save the file.
- When 7zip asks you to update the archive, say Yes.
- Close 7zip and re-open your XLSX.
- Click Protect Workbook on Review tab.
- Optional: Save your file.
If worksheets are protected:
- Browse to
xl/worksheets/
folder. - Right click the
Sheet1.xml
,sheet2.xml
, etc and select Edit. - Find the portion
<sheetProtection password="XXXX" sheet="1" objects="1" scenarios="1" />
- Remove the encrypted password (ie.
<sheetProtection password="" sheet="1" objects="1" scenarios="1" />
) - Save the file.
- When 7zip asks you to update the archive, say Yes.
- Close 7zip and re-open your XLSX.
- Click Unprotect Sheet on Review tab.
- Optional: Save your file.
Solution 2 - Vba
I found another way to solve this one to avoid password of VBA Project,with out loosing excel password.
use Hex-editor XVI32 for the process
if the file type is XLSM files:
- Open the XLSM file with 7-Zip (right click -> 7-Zip -> Open archive).
- Copy the xl/vbaProject.bin file out of the file (you can drag and drop from 7-Zip), don't close 7-Zip
- Open the vbaProject.bin file with HexEdit
- Search for "DPB=" and replace it with "DPx="
- Save the file
- Copy this file back into 7-Zip (again, drag and drop works)
- Open the XLSX file in Excel, if prompted to "Continue Loading Project", click Yes. If prompted with errors, click OK.
- Press Alt+ F11 to open the VBA editor.
- While press it will show error “Unexpected error (40230)”, just click OK (6 or 7 times) until it goes away.
- Then it will open Automatically
Solution 3 - Vba
This has a simple method using SendKeys to unprotect the VBA project. This would get you into the project, so you'd have to continue on using SendKeys to figure out a way to remove the password protection: <http://www.pcreview.co.uk/forums/thread-989191.php>
And here's one that uses a more advanced, somewhat more reliable method for unprotecting. Again, it will only unlock the VB project for you. <http://www.ozgrid.com/forum/showthread.php?t=13006&page=2>
I haven't tried either method, but this may save you some time if it's what you need to do...
Solution 4 - Vba
My 2 cents on Excel 2016:
- open the
xls
file withNotepad++
- Search for
DPB=
and replace it withDPx=
- Save the file
- Open the file, open the VB Editor, open modules will not work (
error 40230
) - Save the file as xlsm
- It works
Solution 5 - Vba
I found this here that describes how to set the VBA Project Password. You should be able to modify it to unset the VBA Project Password.
This one does not use SendKeys.
Let me know if this helps! JFV
Solution 6 - Vba
After opening xlsm file with 7 zip, extracting vbaproject.bin and in Notepad ++ replacing DpB with DPx and re-saving I got a Lot of vbaproject errors and vba project password was gone but no code/forms.
I right clicked to export and was able to re-import to a new project.