Макрос предназначен для замены паролей на открытие, для большого количества файлов Excel.
В качестве исходных данных, задаётся старый и новый пароли.
Если поле «старый пароль» — пустое, подразумевается, что у файлов нет пароля.
Если поле «новый пароль» — пустое, подразумевается, что с файлов снимается пароль.
Нажимаем кнопку, — появляется диалоговое окно выбора папки, — после чего макрос в цикле открывает всё файлы,
и пересохраняет их с новым паролем.
Возможно, у некоторых файлов не получится изменить пароль
(например, у тех, где пароль на открытие отличается от заданного в поле «Старый пароль»)
Список таких файлов программа выводит в таблицу, в виде гиперссылок.
ВНИМАНИЕ: Это очень опасный макрос, — если вы случайно забудете, какой пароль вы установили на файлы,
— все обработанные макросом файлы Excel станут недоступны!
Так что, пользуйтесь макросом на свой страх и риск.
Напоминаю: снять (сбросить) пароль н а открытие файла невозможно!
(только полным перебором, — а это очень долго)
Часть кода макроса: (см. прикреплённый файл)
Вложение | Размер | Загрузки | Последняя загрузка |
---|---|---|---|
SetPasswords.xlsb | 27.69 КБ | 56 | 3 года 11 недель назад |
- 12468 просмотров
Комментарии
Макрос хорош, я добавил еще строки на отключение диалоговых окон, а то напрягает каждый раз нажимать на ОК если настроены внешние связи.
Вотя я и был неправ )) перебором он очень долго будет ломать )) автору спасибо
А за макрос спасибо он очень выручает
насчет того что долго сбрасывать пароль несогласен ) есть коллекция ломалок от элкомсофта так они без проблем хакают пароли офиса
Это лучший макрос в моей жизни!
Отправить комментарий
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
ПОПУЛЯРНЫЕ ПРОГРАММЫ
© 2009-2019 Игорь Вахненко
В данной статье описаны несколько способов разблокировки (снятия защиты, пароля) в запароленном файле «Эксель» и приведен макрос подбора пароля к файлу.
Категорически рекомендую использовать данные способы для разблокировки и снятия защиты только со своих собственных файлов, когда забыли (запамятовали) пароль и ни в коем случае не применять данные способы для взлома паролей защиты на чужих файлах не принадлежащих Вам.
Способ номер 1. Использование бесплатной офисной программы Open Office Calc
Это один из самых простых способов снятия забытого пароля с файла.
Что нужно делать:
- Скачать и установить бесплатную программу Open Office.
- Открыть запароленный файл в программе Open Office Calc.
- Перейти во вкладку «Сервис»
- Далее выбрать пункт «Защитить документ»
- Снять флажок (галочку) с пункта с названием защищенного листа.
Снять пароль в Open Office
Способ номер 2. Использование программы-архиватора для снятия пароля с листа «Excel»
Что нужно делать:
-
Установить программу для открытия архивов и архивирования документов, если таковая не установлена на Вашем ПК. Например WinRar или 7Zip ;
7Zip man
Сохранить как xlsx
Снятие пароля через архив
Удаление строки с паролем
Способ номер 3. Макрос VBA «Excel» для подбора пароля и снятия защиты листа.
Этот способ немного сложнее, так как от Вас потребуются хотя бы начальные знания в написании макросов «Excel».
Как пишется простейший макрос в «Excel» Вы можете посмотреть на странице сайта по ссылке:
Как написать простой макрос в программе Excel
Если вы знакомы с написанием макросов VBA , то для разблокировки файла защищенного паролем Вам следует выполнить следующие действия:
- Открыть редактор макросов во вкладке разработчик.
- Записать следующий код макроса:
- Sub podbor_ruexcel()
- Dim E1, E2, E3, E4, E5, E6, i, j, k, l, m, n As Integer
- Dim ruexcel As String
- Dim t!
- t = Timer
- On Error GoTo err_
- For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
- For l = 65 To 66: For m = 65 To 66: For E1 = 65 To 66
- For E2 = 65 To 66: For E3 = 65 To 66: For E4 = 65 To 66
- For E5 = 65 To 66: For E6 = 65 To 66
- ruexcel = Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(E1) & Chr(E2) & Chr(E3) & Chr(E4) & Chr(E5) & Chr(E6)
- For n = 32 To 126
- Unprotect ruexcel & Chr(n)
- MsgBox «Пароль снят » & Format(Timer — t, «0.0 sec»)
- Exit Sub
- nxt_: Next: Next: Next: Next: Next: Next
- Next: Next: Next: Next: Next: Next
- Exit Sub
- err_: Resume nxt_
- End Sub
- Запустить полученный макрос.
- После выполнения макроса пароль с листа «Excel» будет снят.
Результат редактирования макроса:
Макрос подбора пароля к листу Excel в редакторе
Большинство наверняка знает как установить/снять пароль с VBA проекта вручную:
- Tools—VBAProject Properties-вкладка Protection;
- для защиты устанавливается галочка "Lock project for viewing"; для разблокировки — снимается;
- вписывается/удаляется сам пароль в полях Password и Confirm password.
Предположу, что не очень многим может понадобиться снимать пароль с проекта VBA средствами самого VBA. Но все же данная тема имеет спрос, как я смог убедиться, общаясь на форумах. Прежде всего это может пригодиться тем, кто создает свои приложения на VBA и периодически нужно вносить изменения в уже созданные проекты(например копирование модулей и кодов из одного проекта в другой). Сразу оговорюсь: я не рассматриваю ситуации, когда вам неизвестен пароль к проекту. Предполагается, что вы знаете пароль и можете снять его вручную.
Я лично знаю два способа снять пароль программно: через метод SendKeys и использовании функций API. Т.к. второй способ довольно громоздкий и сложный для понимания — я в данной статье опишу лишь первый способ. Он не содежит каких-либо изысков и довольно прост.
Sub Unprotect_VBA() Dim objVBProject As Object, objVBComponent As Object, objWindow As Object Workbooks.Open "C:1.xls" Set objVBProject = ActiveWorkbook.VBProject ‘просматриваем все окна проекта в поисках окна снятия защиты For Each objWindow In objVBProject.VBE.Windows ‘ Type = 6 — это нужное нам окно If objWindow.Type = 6 Then objWindow.Visible = True objWindow.SetFocus: Exit For End If Next ‘вводим пароль и подтверждаем ввод SendKeys "
", True: SendKeys "
Код сначала открывает необходимую книгу, а затем снимает пароль с проекта.
"C:1.xls" — полный путь к книге, включая расширение файла.
" — пароль к проекту. Тильды нужны, но они не являются частью кода. Т.е. сам код это — 1234.
Способ, как видите, действительно очень прост, но это порождает и недостатки. Главный недостаток: снятие пароля данным методом весьма нестабильно и иногда может не срабатывать. Так же во время работы данного кода крайне нежелательно пользоваться мышью и клавиатурой. Точнее даже не нежелательно, а просто нельзя, если вам необходим положительный результат.
Также см.:
[[Копирование модулей и форм из одной книги в другую]]
[[Как удалить макросы в книге?]]
[[Как добавить код процедуры программно, скопировать модуль]]
[[Защита листов/снятие защиты]]
Статья помогла? Поделись ссылкой с друзьями!