Как сбросить парольную защиту (пароль) модуля VBA в Excel 2010
Макросы и надстройки существенно расширяют функционал пакета Microsoft Office путем добавления новых возможностей, автоматизации рутинных задач и т.д.
Эти дополнения могут быть защищены паролем с целью, например, запрета несанкционированных изменений
Однако случаются ситуации, когда необходимо внести изменения в код, а пароль неизвестен – забыт, потерян, ушел вместе с предыдущим сотрудником и прочее.
Рассмотрим как достаточно просто сбросить пароль в модуле VBA в таком случае. Для работы будет необходим Far менеджер , скачать с официального сайта можно по ссылке. Желательно сделать резервную копию файла.
Имеется файл с расширением .xlsm – надстройка Excel 2010, в нем макрос на VBA, защищенный паролем.
Меняем расширение файла на .zip , игнорируя предупреждающее сообщение:
Вот так должно получится:

Запускаем FarManager , ищем наш файл, заходим внутрь архива по Enter , находим файл vbaProject.bin , нажимаем F4 . Видим что-то подобное:


Ищем строку с определением ключа DPB . По клавише F7 , вводим «DPB» и жмем Enter . Изменяем имя ключа на DPW.

Сохраняем файл по F2 , выходим по Esc . На вопрос о сохранении файла в архиве жмем Ok

Переименовываем файл обратно в .xlsm и открываем.
Подтверждаем загрузку проекта, не смотря на некорректный ключ (который мы сами и сделали некорректным):

В окнах с сообщениями об ошибке смело жмем ОК .

Запускается VBA Editor и код макроса доступен для редактирования!
Чтобы убрать ругань при открытии проекта, нужно или совсем сбросить пароль или установить свой. Делается это через меню Tools – Project Properties .

В открывшемся окне перейти на закладку Protection .
Чтобы сбросить пароль, нужно убрать галочку из окна Lock project for viewing . Чтобы задать свой пароль, введите его и подтвердите в полях ниже это же окна.
How to bypass the VBA project password from Excel
I need help with password retrieval or bypassing the password on a project that was done at work. The author has used MS Excel to do the project, and it’s in the client’s server. The server that we use has no access to Notepad++.
![]()
1 Answer 1
For older .XLS files:
Open file in any hex editor
Search for the text "DPB=" (no quotes, you should find it just above "[Host Extender Info]"

Change it to "DPx=", save and close the file

Open the file in Excel and press Yes if the following warning pops up:

Open the VBA editor ( Alt + F11 ) and press OK whenever the following warning pops up:

Right-click the VBA project name, select Properties, go to the Protection tab and delete the existing passwords as well as uncheck the Lock project for viewing checkbox:

Re-check the Lock project for viewing checkbox and add your own memorable password.
OK your way out and now the VBA code is accessible!
For newer .XLSM files:
Change the file’s extension to .ZIP
Open the file in any archiver such as WinRAR or 7-Zip and you’ll see the following directory structure:
Вынужденный обход парольной защиты модуля VBA в Excel 2010
Здравствуйте, друзья!
Последние дни бился над такой задачей:
Имеется файл .xls, в нем макрос на VBA, защищенный паролем. Файл создается путем экспортирования из программы ГрандСмета и содержит в себе смету, которая должна обрабатываться макросом.
На 32х разрядных версиях — отрабатывает без проблем.
На 64х столкнулся со следующей ошибкой: 
Справка Microsoft дает однозначный ответ: 
Связывался с Тех.Поддержкой, объяснял причину. Ответ был один:
Тогда я решился самостоятельно править код макроса. Сложность, с которой столкнулся — модуль защищен паролем. О том, как сбросить/изменить пароль не используя специализированное ПО для взлома пароля
Итак, приступим. Заранее предупрежу — я не профессиональный программист, а скорее ЭниКейщик, так что возможны некорректные формулировки, а кому-то может и вовсе не понравиться выбранный мной путь.
Первым делом я стал бороздить просторы Сети в поисках решения. В основном полным-полно ссылок на ПО, из разряда PasswordCracker. Одно из решений опубликованное на Ru-Board’e полностью удаляло код модуля VBA.
В конце концов, мои старания вознаградились — предлагаю Вам вольный перевод найденного решения (к сожалению не могу указать первоисточник — не помню) + попытка понять суть выявленной «уязвимости».
Думаю, что ни для кого не секрет, что начиная с Excel 2007 использует Microsoft Office Open XML в качестве своего основного формата.
FarManager превосходно открывает xls файл с отображением всей структуры документа.
1. Запускаем FarManager.
2. Открываем файл для редактирования.
3. Ищем строку с определением ключа DPB, и изменяем имя ключа на DPW.
4. Сохраняем.
4. Открываем файл в Excel.
5. Подтверждаем загрузку проекта, не смотря на некорректный ключ (который мы сами и сделали некорректным в п.3):
6. В окнах с сообщениями об ошибке смело жмем ОК.
7. С помощью комбинации Alt+F11 — запускаем VBA Editor и, вуаля, код макроса доступен для редактирования.
Теперь причина возникавшей ошибки при запуске макроса в среде x64 — очевидна!
Компилятор подсказывает о том, что код в данном проекте должен быть обновлен для использования на 64х разрядных системах, конкретно указав, что надо было всего лишь добавить ключевое слово PtrSafe при объявлении функции.
Изменения внес, пересохранил, проверил. Все работает. Порадовал коллег решением наболевшей проблемы + приобрел опыт.
Пытаюсь решить последний вопрос, на котором я и застопорился:
Как вразумительно, и не обидев, объяснить Тех.Поддержке о решении возникшей проблемы с запуском макроса? Не должен же я самостоятельно перелапачивать все шаблоны (а их порядка 50), чтобы макрос корректно отрабатывал на x64 версиях Офиса. К тому же вопрос этики — пришлось «обходить» защиту кода макроса.
Removing the password from a VBA project
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.
![]()
6 Answers 6
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.
I found another way to solve this one to avoid password of VBA Project, without losing password.
If the file type is XLSM files:
- Rename the .xlsm as .zip (or you can open the .xlsm with 7zip/WinRAR) and open/extract it
- Edit the xl/vbaProject.bin file with Notepad++ or HexEdit
- Search for DPB= and replace it with DPx=

- Save the file
- Copy this file back into the .zip (or zip the files back up)
- Rename the archive back to .xlsm
- Open the file in Excel, if prompted to "Continue Loading Project", click Yes. If prompted with errors, click OK. Note: the code may still be blank or corrupted, which we fix in the next step
- Save the file as a new .xlsm file
- Open the new file in Excel (should be no errors now)
- Press Alt+ F11 to open the VBA editor
or
Follow this Step Also
I found another way to solve this one to avoid password of VBA Project, without losing 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). 2. 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="
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. 8. 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.