Как удалить пароль VBA Excel — несколько подходов

Вы ищете, как удалить пароль VBA Excel? Если да? Тогда эта платформа — идеальное решение. Вам не нужно искать дополнительные решения. Здесь, в этом блоге, вы найдете наиболее ценные методы удаления пароля VBA из Excel. Мы также упомянули различные подходы к удалению паролей Excel VBA. Итак, следите за обновлениями до конца этого блога.
Решение №1. Как удалить пароль VBA Excel — автоматизированный подход
Вот лучшее решение для удаления пароля Excel VBA с помощью Лучший инструмент для восстановления пароля VBA. Этот инструмент превосходен по своим возможностям, безопасен и надежен. Лучшая часть этого инструмента заключается в том, что он поможет вам удалить старый пароль и легко сгенерировать новый пароль. Кроме того, этот инструмент полностью удобен в использовании.
Работа с инструментом — Краткое руководство
Шаг 1. Загрузите и запустите программное обеспечение на своем ПК.

Шаг 2. Затем добавьте файлы, защищенные паролем, нажав кнопку «Добавить файл/Добавить папку».

Шаг 3. После этого выберите файлы и нажмите кнопку «Открыть».

Шаг 4. Если вы по какой-то причине берете файл, который вам не нужен, то вы можете удалить его, нажав на кнопку Удалить.

Шаг 5. После этого нажмите кнопку «Сброс».

Шаг 6. Затем, в конце, это программное обеспечение отобразит сообщение «Процесс сброса успешно завершен».

Расширенные возможности этого инструмента
- Возможность удаления паролей из одного или нескольких файлов VBA.
- Это программное обеспечение может автоматически удалять старый пароль и генерировать новый пароль.
- Это программное обеспечение также совместимо с ОС Windows и MS Office.
- Возможность сброса пароля из различных форматов макросов, таких как .xltm, .xlsb, .dotm, .docm и т. д.
- В данной программе есть функция создания отчетов о проделанной работе.
- Пользователи также могут сбросить пароль до любой длины по желанию пользователя.
Эти расширенные функции дают нам представление о том, что при использовании этого инструмента вы можете легко решить проблему удаления пароля Excel VBA. Но если, увидев все такие преимущества этого инструмента, вы можете легко перейти к ручным решениям, упомянутым в следующем пункте.
Решение №2. Как удалить пароль VBA Excel — ручное решение
Здесь мы собираемся упомянуть различные типы ручных решений для решения проблемы пользователя.
Формула 1. Удалить пароль VBA Excel с помощью шестнадцатеричного редактора
- Создайте новый файл Excel с помощью шестнадцатеричного редактора.
- Затем установите пароль в поле VBA (Alt + F11)
- Сохраните файл и нажмите кнопку «Выход».
- Затем откройте созданный вами файл с помощью шестнадцатеричного редактора.
- Теперь скопируйте строку, начинающуюся с CMG=…, DPB=… и GC=…
- После копирования строки. Откройте файл, для которого вы хотите удалить пароль VBA, и вставьте эти строки в этот файл.
- Затем сохраните файл и нажмите кнопку «Выход».
- На последнем шаге откройте файл Excel, в котором вы хотите увидеть код VBA, и введите пароль, который вы использовали на предыдущем шаге.
Формула 2. Удалить пароль VBA Excel с помощью метода рабочей книги
- Откройте книгу, все листы, защищенные паролем, будут сохранены.
- Одновременно нажмите клавиши «Alt + F11», чтобы проверить все листы.
- Теперь введите Insert-Module и вставьте код.
- Затем выйдите из редактора VB и перейдите к книге, из которой вы хотите удалить пароль.
- В конце введите «Инструменты-Макросы-Макросы» и дважды щелкните средство удаления пароля.
Это ручное решение, которое вы можете использовать для удаления паролей VBA из Excel. Но эти ручные решения требуют очень много времени, и вы должны иметь техническую подготовку для выполнения этих ручных решений.
Заключение
В следующих разделах выше мы объяснили, как удалить пароль VBA Excel. Мы также предоставили как автоматизированные, так и ручные решения. Но здесь мы предпочитаем, чтобы вы использовали автоматизированное решение, чтобы сократить количество шагов и время, необходимое для удаления пароля проекта VBA. И самое главное, этот инструмент удобен для пользователя и не требует никаких технических знаний при использовании этого программного обеспечения.
By Jaspreet Singh
Jaspreet Singh is a versatile professional with a focus on digital marketing and content strategy. As a Digital Marketing Consultant, he excels at crafting and executing effective online strategies to enhance brand presence and engagement.
Как снять пароль с vba макроса в excel
Пожалуйста, подскажите кто знает решение проблемы, как программно (т.е. макросом) снять пароль VBAProject для того чтобы добавить новые модули?
Во вложении пустая книга с модулем. Пароль для VBAProject = 123.
Прикрепленные файлы
- Test.xlsm (10.84 КБ)
Пользователь
Сообщений: 14615 Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
20.03.2018 19:08:17
А поиск вообще по этому поводу ничего не говорит?
Как программно снять пароль с VBA проекта?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы.
Пользователь
Сообщений: 471 Регистрация: 25.07.2013
20.03.2018 19:38:25
Дмитрий Щербаков, прбовал этот вариант. На первой книге спотыкается и вставляет заданный пароль в тело этого же макроса.
Пользователь
Сообщений: 471 Регистрация: 25.07.2013
20.03.2018 19:40:28
Не нашел варианта без Sendkeys.
Пользователь
Сообщений: 4566 Регистрация: 10.09.2017
20.03.2018 20:26:43
Можно еще так попробовать (по-другому, но тоже SendKeys):
' Снимает защиту проекта. Идея: http://www.rondebruin.nl/ Private Sub UnprotectVBProject(wb As Workbook, ByVal Password As String) Dim vbProj As Object, vbCtl As Object Set vbProj = wb.VBProject 'can't do it if already unlocked! If vbProj.Protection <> 1 Then Exit Sub End If Set Application.VBE.ActiveVBProject = vbProj If Application.VBE.ActiveVBProject.Name <> vbProj.Name Then Exit Sub End If Set vbCtl = Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True) With vbCtl .Reset .Execute End With SendKeys Password & "~~", True End Sub
На Вашей книге пароль проекта снимается.
Изменено: sokol92 — 20.03.2018 20:34:56
Пользователь
Сообщений: 471 Регистрация: 25.07.2013
20.03.2018 20:41:57
sokol92, завтра проверю, отпишусь.
Пользователь
Сообщений: 471 Регистрация: 25.07.2013
21.03.2018 09:12:19
sokol92, вставляю макрос, однако 3-я строка горит красненьким, говорит Syntax error.
Такая же ситуация со строками 7-9, 13-15 и 21.
Что не так?
Пользователь
Сообщений: 4566 Регистрация: 10.09.2017
21.03.2018 10:05:44
Странно. Пробуем вместе. Загрузите прилагаемый файл (это Ваш файл + макрос) и выполните макрос (Alt+F8) Unprotect. После этого попробуйте раскрыть проект.
Предварительно проверьте, что в Параметры центра управления безопасности/Параметры макросов выставлен флажок «Доверять доступ к объектной модели проектов VBA»
Прикрепленные файлы
- Testu.xlsm (14.28 КБ)
Пользователь
Сообщений: 471 Регистрация: 25.07.2013
21.03.2018 12:37:49
sokol92, странно, в вашем файле не ругается. Пароль снимает, спасибо. Сейчас попробую прикрутить к своим нуждам.
Но по хорошему мне нужно снять защиту чтобы добавить модули, а не удалить его вообще. Есть какие-либо мысли на этот счет?
Пользователь
Сообщений: 4566 Регистрация: 10.09.2017
21.03.2018 13:35:10
Макрос не удаляет защиту. Если Вы сохраните книгу и вновь ее откроете, то проект будет защищен. Если Вы предполагаете, что у пользователя (не автора) будут добавляться «на лету» модули, то это очень плохое решение по многим соображениям.
Пользователь
Сообщений: 471 Регистрация: 25.07.2013
21.03.2018 13:48:05
sokol92, что-то не срабатывает, ломает файлы. Не могли бы глянуть, может где ошибка вкралась?
Sub UnprotectVBProject(wb As Workbook, ByVal Password As String) Dim vbProj As Object, vbCtl As Object Set vbProj = wb.VBProject 'can't do it if already unlocked! If vbProj.Protection <> 1 Then Exit Sub End If Set Application.VBE.ActiveVBProject = vbProj If Application.VBE.ActiveVBProject.Name <> vbProj.Name Then Exit Sub End If Set vbCtl = Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True) With vbCtl .Reset .Execute End With SendKeys Password & "~~", True End Sub Sub InsertModuleToTheWorkbooks() Dim sFolder As String, sFiles As String Dim CurrentModuleNumber As Long Dim wbFDP As Workbook Dim CurrentModule As String Dim objVBProject As Object Dim objVBComponent As Object Dim objWindow As Object sFolder = "C:\. \" 'folder path sFiles = Dir(sFolder & "*.XLSM") 'file path Do While sFiles <> "" Set wbFDP = Workbooks.Open(sFolder & sFiles) 'open workbook Set objVBProject = wbFDP.VBProject UnprotectVBProject wbFDP, "123" 'unprotect VBA Project 'remove 5 old modules For CurrentModuleNumber = 1 To 5 CurrentModule = "Module" & CurrentModuleNumber With wbFDP.VBProject.VBComponents .Remove wbFDP.VBProject.VBComponents(CurrentModule) End With Next CurrentModuleNumber 'install 6 new modules For CurrentModuleNumber = 1 To 6 CurrentModule = "Module" & CurrentModuleNumber With wbFDP.VBProject.VBComponents .Import "C:\. \" & CurrentModule & ".bas" 'path to new modules End With Next CurrentModuleNumber wbFDP.Close True sFiles = Dir Loop Set objVBProject = Nothing: Set objWindow = Nothing End Sub
Изменено: ac1-caesar — 21.03.2018 13:49:23
Пользователь
Сообщений: 4566 Регистрация: 10.09.2017
21.03.2018 14:56:33
В Вашем коде из #11 есть цикл по удалению модулей с именами Module1-Module5. В книге из #1 есть только Module1. Если конец цикла в строке 44 изменить на 1, то при выполнении макроса с проекта снимается защита и удаляется Module1 (проверил). Вставку модулей не проверял.
Пользователь
Сообщений: 471 Регистрация: 25.07.2013
21.03.2018 15:29:25
sokol92, если с VBA заранее снести пароль,то отдельно процедуры по удалению и вставке работают. А вот когда VBA запаролен, то все в куче не хочет работать. Подозреваю где то спотыкается об SendKeys, но не уверен. С одним файлом работает, а вот несколько — не получается.
VBA Excel. Защита паролем проекта VBA и снятие защиты
Защита проекта VBA паролем помогает от случайного или намеренного изменения кода обычным пользователем. От злоумышленников простая установка пароля не спасет.
Защита проекта VBA стандартными средствами:
- Перейдите в окно «VBAProject — Project Properties» через пункты меню: «Tools» >> «VBAProject Properties».
- В открывшемся окне выберите вкладку «Protection» и установите галочку в чек-боксе «Lock project for viewing».
- Введите пароль в поле «Password» и повторите пароль в поле «Confirm password».

- Нажмите кнопку «OK» и закройте книгу Excel.
При следующем открытии этой книги проект VBA будет защищен.
Снятие защиты с VBA-проекта
Снятие защиты с проекта VBA стандартными средствами:
- Перейдите в окно «VBAProject — Project Properties» через пункты меню: «Tools» >> «VBAProject Properties».
- В открывшемся окне выберите вкладку «Protection» и уберите галочку из чек-бокса «Lock project for viewing».
- Очистите поля «Password» и «Confirm password».
- Нажмите кнопку «OK» и закройте книгу Excel.
При следующем открытии этой книги проект VBA будет доступен.
Отключение забытого пароля
Этот способ отключения забытого пароля применим к файлам Excel с расширением .xlsm. Чтобы не забывать пароли, используйте менеджер KeePass.
- Сделайте копию книги Excel, чтобы случайно не потерять ее при вмешательстве в код.
- Откройте файл .xlsm любым архиватором (я использую бесплатный 7-Zip). Иногда рекомендуют заменить расширение .xlsm на .zip или добавить одно к другому (.xlsm.zip), но делать этого совершенно не обязательно.

- Откройте в архиве папку «xl», найдите файл «vbaProject.bin» и перетащите его в папку с книгой Excel (по умолчанию происходит копирование).

- Откройте файл «vbaProject.bin» программой «Notepad++», обычный блокнот не подойдет.
- С помощью поиска (Ctrl+F) найдите фразу DPB= , замените в ней букву «B» на любую другую, например на «z» и сохраните файл.

- Перетащите файл «vbaProject.bin» обратно в архив, подтвердив копирование. Архив можно закрыть.
- Откройте книгу Excel и на запрос о продолжении загрузки с невалидным ключом «DPz» ответьте «Да».

- Откройте редактор VBA, дважды или трижды нажав «OK» в сообщении о неизвестной ошибке (у меня такое предупреждение появляется трижды).

- Сохраните книгу Excel и закройте.
- Откройте файл Excel, перейдите в редактор VBA, откройте окно «VBAProject — Project Properties» («Tools» >> «VBAProject Properties») и убедитесь, что галочка у чек-бокса «Lock project for viewing» снята, поля «Password» и «Confirm password» — пустые.
Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.
4 комментария для “VBA Excel. Защита паролем проекта VBA и снятие защиты”
Здравствуйте Евгений.
Имеется ли способ на 100% защитить код от просмотра/копирования?
Просмотрел в сети много мануалов, и везде пишут, что все пароли с проекта снимаются за 5-20 минут не зависимо от вида блокировки.
В планах написать программу, аналогов которой не существует, и которая будет содержать коммерческую тайну нашей фирмы. Возможность использования софта, путем снятия пароля третьими лицами отбивает все желание.
Здравствуйте, Тамир!
Когда я интересовался защитой VBA-проекта паролем, не нашел надежного способа.
Провел мониторинг.
Что скажете касаемо обфускации кода и переноса кода в dll, как методов защиты кода?
В сети пишут, что это действенные методы, или они так же имеют недочеты?
Сбитый Лётчик Небосводов 06.02.2023 в 06:42
Здравствуйте, Тамир!
Здравствуйте, Евгений!
Здравствуйте, коллеги!
dll – хорошо и надёжно, вот только таскать с xls ещё и dll не удобно, и большинству это не понравится.
Обфускация как надёжная защита с моей т.зр. вообще смешно: от копирования никак вообще не защищает, читаемость быстро восстанавливается Relace All’ом.
Коллеги, поделитесь мыслями.
Как программно снять пароль с VBA проекта?
Большинство наверняка знает как установить/снять пароль с 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 "~1234~", True: SendKeys "", True 'здесь Ваш код по внесению изменений в проект Set objVBProject = Nothing: Set objVBComponent = Nothing: Set objWindow = Nothing ActiveWorkbook.Close True End Sub
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 «~1234~», True: SendKeys «», True ‘здесь Ваш код по внесению изменений в проект Set objVBProject = Nothing: Set objVBComponent = Nothing: Set objWindow = Nothing ActiveWorkbook.Close True End Sub
Код сначала открывает необходимую книгу, а затем снимает пароль с проекта.
«C:\1.xls» — полный путь к книге, включая расширение файла.
«~1234~» — пароль к проекту. Тильды нужны, но они не являются частью кода. Т.е. сам код это — 1234.
Способ, как видите, действительно очень прост, но это порождает и недостатки. Главный недостаток: снятие пароля данным методом весьма нестабильно и иногда может не срабатывать. Так же во время работы данного кода крайне нежелательно пользоваться мышью и клавиатурой. Точнее даже не нежелательно, а просто нельзя, если вам необходим положительный результат.
Также см.:
[[Копирование модулей и форм из одной книги в другую]]
[[Как удалить макросы в книге?]]
[[Как добавить код процедуры программно, скопировать модуль]]
[[Защита листов/снятие защиты]]
Статья помогла? Поделись ссылкой с друзьями!