Удаление пароля из проекта VBA

37

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

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

  • 0
    Сделал поиск в Google - кажется, нет прямого пути - вы должны использовать Kludge sendkeys http://www.mrexcel.com/forum/showthread.php?t=49034
  • 3
    Отмеченный ответ НЕ является лучшим .... лучший ответ пришел спустя годы Уйгар Y
Показать ещё 3 комментария
Теги:
excel-vba
excel
security
password-protection

3 ответа

8
Лучший ответ

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

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

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

  • 1
    У меня есть код. Что делать? Я не могу ни открыть VBEditor, ни выполнить что-либо, потому что проект заблокирован, поэтому любой новый скрипт не может быть выполнен !?
  • 0
    + 1 :) @serhio: еще один способ использования APIS
Показать ещё 1 комментарий
97

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

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

UPDATE: Для Excel 2010 (работает для MS Office Pro Plus 2010 [14.0.6023.1000 64 бит]),

  • Откройте файл 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.
  • Нажмите Снять защиту листа на вкладке Обзор.
  • Дополнительно: сохраните файл.
  • 0
    Это сработало для меня. При просмотре кода VBA мне также пришлось несколько раз нажать «ОК».
  • 6
    И еще одно дополнение к первоначальному ответу: если у вас есть файл xlsx, откройте его в Excel и выберите «Сохранить как» xls. А затем выполните вышеуказанные шаги ...
Показать ещё 10 комментариев
2

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

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

Сообщите мне, если это поможет! JFV

Ещё вопросы

Сообщество Overcoder
Наверх
Меню