Удаление пароля из проекта VBA - PullRequest
46 голосов
/ 07 ноября 2008

Как программно удалить (известный) пароль из проекта Excel VBA?

Для ясности: я хочу удалить пароль из проекта VBA, а не рабочую книгу или любые рабочие листы.

Ответы [ 4 ]

109 голосов
/ 20 октября 2011

Другой способ удалить пароль проекта VBA:

  • Открыть файл xls с помощью шестнадцатеричного редактора. (т.е. Hex Edit http://www.hexedit.com/)
  • Поиск DPB
  • Заменить DPB на DPx
  • Сохранить файл.
  • Открыть файл в Excel.
  • Нажмите «Да», если вы получили какое-либо окно сообщения.
  • Установить новый пароль из свойств проекта VBA.
  • Закройте и снова откройте файл, затем введите новый пароль для снятия защиты.

ОБНОВЛЕНИЕ: Для Excel 2010 (Работает для MS Office Pro Plus 2010 [14.0.6023.1000 64bit]),

  • Откройте файл XLSX с помощью 7zip

Если рабочая книга защищена:

  • Просмотр папки xl
  • Если рабочая книга защищена, щелкните правой кнопкой мыши workbook.xml и выберите Изменить
  • Найдите часть <workbookProtection workbookPassword="XXXX" lockStructure="1"/> (XXXX - ваш зашифрованный пароль)
  • Удалить XXXX часть. (т.е. <workbookProtection workbookPassword="" lockStructure="1"/>)
  • Сохраните файл.
  • Когда 7zip попросит вас обновить архив, скажите Да .
  • Закройте 7zip и снова откройте XLSX.
  • Нажмите Защита рабочей книги на Просмотр вкладка.
  • Необязательно: сохраните файл.

Если рабочие листы защищены:

  • Перейдите к папке xl/worksheets/.
  • Щелкните правой кнопкой мыши Sheet1.xml, sheet2.xml и т. Д. И выберите Редактировать .
  • Найти порцию <sheetProtection password="XXXX" sheet="1" objects="1" scenarios="1" />
  • Удалить зашифрованный пароль (т. Е. <sheetProtection password="" sheet="1" objects="1" scenarios="1" />)
  • Сохраните файл.
  • Когда 7zip попросит вас обновить архив, скажите Да .
  • Закройте 7zip и снова откройте XLSX.
  • Нажмите Снять защиту с листа на Просмотр вкладка.
  • Необязательно: сохраните файл.
10 голосов
/ 24 января 2018

Я нашел другой способ решить эту проблему, чтобы избежать пароля проекта VBA, не теряя пароль Excel.

использовать Hex-редактор XVI32 для процесса

, если тип файла - файлы XLSM:

  1. Откройте файл XLSM с помощью 7-Zip (щелкните правой кнопкой мыши -> 7-Zip -> Открыть архив).
  2. Скопируйте файл xl / vbaProject.bin из файла (можно перетаскивать из 7-Zip), не закрывайте 7-Zip
  3. Открыть файл vbaProject.bin с помощью HexEdit
  4. Найдите «DPB =» и замените его на «DPx =»
  5. Сохранить файл
  6. Скопируйте этот файл обратно в 7-Zip (опять же, перетаскивание работает)
  7. Откройте файл XLSX в Excel, при появлении запроса «Продолжить загрузку проекта» нажмите Да. Если появится сообщение об ошибке, нажмите ОК.
  8. Нажмите Alt + F11, чтобы открыть редактор VBA.
  9. Во время нажатия отобразится ошибка «Неожиданная ошибка (40230)», просто нажмите кнопку ОК (6 или 7 раз), пока она не исчезнет.
  10. Затем он откроется автоматически
9 голосов
/ 07 ноября 2008

Это простой метод, использующий SendKeys для снятия защиты с проекта VBA. Это приведет вас к проекту, поэтому вам придется продолжить использовать SendKeys, чтобы найти способ снять защиту паролем: http://www.pcreview.co.uk/forums/thread-989191.php

А вот тот, который использует более продвинутый, несколько более надежный метод снятия защиты. Опять же, это только разблокирует проект VB для вас. http://www.ozgrid.com/forum/showthread.php?t=13006&page=2

Я не пробовал ни один из этих методов, но это может сэкономить вам время, если это то, что вам нужно сделать ...

2 голосов
/ 07 ноября 2008

Я нашел это здесь , которое описывает, как установить пароль проекта VBA. Вы сможете изменить его, чтобы сбросить пароль проекта VBA.

Этот не использует SendKeys.

Дайте мне знать, если это поможет! JFV

...