Макрос установить пароль файла excel: Установка пароля для все файлов в папке

VBA Excel. Защита паролем проекта VBA и снятие защиты

Установка пароля на VBA-проект и снятие защиты с него. Отключение забытого пароля с проекта VBA, созданного в книге Excel с расширением .xlsm.

Установка пароля на VBA-проект

Защита проекта VBA паролем помогает от случайного или намеренного изменения кода обычным пользователем. От злоумышленников простая установка пароля не спасет.

Защита проекта VBA стандартными средствами:

  1. Перейдите в окно «VBAProject — Project Properties» через пункты меню: «Tools» >> «VBAProject Properties».
  2. В открывшемся окне выберите вкладку «Protection» и установите галочку в чек-боксе «Lock project for viewing».
  3. Введите пароль в поле «Password» и повторите пароль в поле «Confirm password».
  1. Нажмите кнопку «OK» и закройте книгу Excel.

При следующем открытии этой книги проект VBA будет защищен.

Снятие защиты с VBA-проекта

Снятие защиты с проекта VBA стандартными средствами:

  1. Перейдите в окно «VBAProject — Project Properties» через пункты меню: «Tools» >> «VBAProject Properties».
  2. В открывшемся окне выберите вкладку «Protection» и уберите галочку из чек-бокса «Lock project for viewing».
  3. Очистите поля «Password» и «Confirm password».
  4. Нажмите кнопку «OK» и закройте книгу Excel.

При следующем открытии этой книги проект VBA будет доступен.

Отключение забытого пароля

Этот способ отключения забытого пароля применим к файлам Excel с расширением .xlsm. Чтобы не забывать пароли, используйте менеджер KeePass.

  1. Сделайте копию книги Excel, чтобы случайно не потерять ее при вмешательстве в код.
  2. Откройте файл .xlsm любым архиватором (я использую бесплатный 7-Zip). Иногда рекомендуют заменить расширение .xlsm на .zip или добавить одно к другому (.xlsm.zip), но делать этого совершенно не обязательно.
  1. Откройте в архиве папку «xl», найдите файл «vbaProject.bin» и перетащите его в папку с книгой Excel (по умолчанию происходит копирование).
  1. Откройте файл «vbaProject. bin» программой «Notepad++», обычный блокнот не подойдет.
  2. С помощью поиска (Ctrl+F) найдите фразу DPB=, замените в ней букву «B» на любую другую, например на «z» и сохраните файл.
  1. Перетащите файл «vbaProject.bin» обратно в архив, подтвердив копирование. Архив можно закрыть.
  2. Откройте книгу Excel и на запрос о продолжении загрузки с невалидным ключом «DPz» ответьте «Да».
  1. Откройте редактор VBA, дважды или трижды нажав «OK» в сообщении о неизвестной ошибке (у меня такое предупреждение появляется трижды).
  1. Сохраните книгу Excel и закройте.
  2. Откройте файл Excel, перейдите в редактор VBA, откройте окно «VBAProject — Project Properties» («Tools» >> «VBAProject Properties») и убедитесь, что галочка у чек-бокса «Lock project for viewing» снята, поля «Password» и «Confirm password» — пустые.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Как защитить проект VBA паролем

Хитрости »

1 Апрель 2016       Дмитрий       46117 просмотров




Основные понятия (26)
Сводные таблицы и анализ данных (10)
Графики и диаграммы (5)
Работа с VB проектом (12)
Power BI и Power Query (22)

Условное форматирование (5)
Списки и диапазоны (5)
Макросы(VBA процедуры) (68)
Разное (43)
Баги и глюки Excel (4)

Для тех кто уже освоился более-менее в программировании на Visual Basic for Application рано или поздно непременно встает вопрос: как защитить свой код от изменений или даже от просмотра? Как правило это делается в файлах, которые в дальнейшем «гуляют по рукам». Т.е. автор создал и потом файл отсылается или другим пользователям, или клиентам, поставщикам и т.п. Чтобы у тех, кто будет в дальнейшем работать с этим файлом, не было возможности подсмотреть проект и тем более что-то в нем изменить. В каких-то случаях цель такой защиты это защита «от дурака»: чтобы по незнанию не изменили так, что файл просто откажется работать. Так же есть и другая причина — код является «коммерческим» и в нем присутствует некая защита от использования функционала по истечению ДЕМО-периода и надо закрыть код, чтобы эту защиту не «сломали».
По сути защитить проект VBA стандартными средствами совсем не сложно. Переходим в проект VBA (вкладка Разработчик(Developer)Visual Basic или сочетание клавиш Alt+F11), далее:

  1. ToolsVBAProject Properties -вкладка Protection
  2. устанавливаем галочку Lock project for viewing. Если галочка не установлена, то весь код можно будет просматривать и изменять, но изменить или просмотреть свойства самого проекта будет уже невозможно без снятия пароля.
  3. вписываем пароль в полях Password и Confirm password

 
Чтобы снять пароль с проекта VBA необходимо перейти в проект VBA файла(вкладка Разработчик(Developer)Visual Basic или сочетание клавиш Alt+F11) и:

  1. ToolsVBAProject Properties -вкладка Protection
  2. снимаем галочку Lock project for viewing
  3. удаляем пароль в полях Password и Confirm password

 
Для чего вообще может быть нужна отдельно галочка Lock project for viewing? Ведь как я написал выше — если её не поставить, весь код проекта становится доступен. Смысл такой защиты? Я применяю так: в коммерческой разработке устанавливаю пароль на проект. Но на само время разработки галочку не ставлю, чтобы у меня был доступ к коду без постоянного ввода пароля. Как только разработка завершена, перед тем как выслать файл заказчику мне остается только установить эту галочку и все — проект защищен(ведь пароль уже установлен). Если потом нужны доработки — то схема такая же: на время доработки снимаю галочку и ставлю обратно перед тем как выслать. Пароль при этом какой был, тот и остается — постоянно его вводить не требуется.


Хочу так же отметить, что пароль от проекта VBA ломается на ура(программ для этого достаточно в сети, перечислять не буду — кому надо сможет найти, а кто не сможет — значит не так уж и надо). Корпорацией Microsoft данный пароль точно не разрабатывался для защиты проекта от несанкционированного взлома и скорее был направлен больше на защиту от дурака. А может дело в том, что сам VBE практически не дорабатывался чуть ли не с самого его создания.
В любом случае, для тех, кто хочет чуть надежнее защитить свой проект VBA лучше использовать для этого сторонние утилиты. Например, очень хорошая программа для рядовых пользователей Protect VBA от eliansoft (http://www.eliansoft.com). Данная программа делает недоступным проект VBA. Никаких паролей вводить не надо — проект просто недоступен даже для ввода пароля. Последняя бесплатная версия была 1.6. Сейчас в сети её уже практически не найти в бесплатном варианте, т.к. разработчики убрали её с офф.сайта и постарались убрать отовсюду, видимо. Но т.к. у меня эта программа есть — выкладываю здесь, но скачать можно только после регистрации на сайте (чтобы тот же eliansoft не смог добраться).

Скачать Protect VBA

  Protect_VBA.zip (287,1 KiB, 556 скачиваний)
У Вас нет прав для скачивания этого файла. Возможно, Вы не зарегистрированы на сайте. Зарегистрируйтесь и попробуйте скачать снова.

Как использовать:

  • создаете файл с кодом, сохраняете, закрываете
  • запускаете Protect VBA
  • выбираете файл, проект VBA которого надо защитить
  • нажимаете Protect
  • будет предложено выбрать папку для сохранения защищенного файла. Здесь лучше заранее создать папку для сохранения файла, т.к. программа делает копию оригинального файла и не даст сохранить непосредственно тот же файл. Что к лучшему — ведь должен же у нас остаться файл с открытыми кодами 🙂

Статья помогла? Поделись ссылкой с друзьями!

    Видеоуроки


Поиск по меткам


Accessapple watchMultexPower Query и Power BIVBA управление кодамиБесплатные надстройкиДата и времяЗапискиИПНадстройкиПечатьПолитика КонфиденциальностиПочтаПрограммыРабота с приложениямиРазработка приложенийРосстатТренинги и вебинарыФинансовыеФорматированиеФункции Excelакции MulTExссылкистатистика

Заблокировать макрос Microsoft Excel

1 ответ на этот вопрос.

0 голосов

Связанные вопросы в других

Вы можете сделать это, используя код, а не … ПОДРОБНЕЕ

ответил

25 сент. 2022 г.

в других

к
нариккадан

• 63 080 баллов

409Просмотры

  • Excel
  • вба

Вот API для связи с Chromium. .. ПОДРОБНЕЕ

ответил

29 сент. 2022 г.

в других

к
нариккадан

• 63 080 баллов

1401 просмотр

  • Excel
  • вба
  • майкрософт край
  • хром
  • веб-просмотр2

Встроенный инструмент гистограммы Excel позволяет только равные … ПОДРОБНЕЕ

ответил

2 октября 2022 г.

в других

к
нариккадан

• 63 080 баллов

472 просмотра

Поместите следующий код в Microsoft … ПОДРОБНЕЕ

ответил

3 октября 2022 г.

в других

к
нариккадан

• 63 080 баллов

233 просмотра

  • Excel
  • выпадающее меню
  • вба

Этот код должен войти в систему при условии … ПОДРОБНЕЕ

ответил

5 сентября 2018 г.

в блокчейне

к
копатель

• 26 740 баллов

648 просмотров

  • блокчейн
  • биткойн
  • вба
  • первенствовать
  • восстановить баланс

В настоящее время я не думаю, что есть . .. ПОДРОБНЕЕ

ответил

3 декабря 2018 г.

в Power BI

к
Упасана

• 8 620 баллов

2747 просмотров

  • Excel
  • вба
  • Excel-VBA
  • поверби
  • мощность-би

Функция Excel И является логическим … ПОДРОБНЕЕ

ответил

9 февраля 2022 г.

в других

к
гаурав

• 22 980 баллов

193 просмотра

  • Excel
  • вба
  • список

Здравствуйте, создайте соседний столбец… ПОДРОБНЕЕ

ответил

16 февраля 2022 г.

в других

к
Эдурека

• 13 630 баллов

469 просмотров

  • Excel
  • вба
  • Excel-2016

Строка 1048576 будет возвращена end(xldown) … ПОДРОБНЕЕ

ответил
18 фев
в других
к
нариккадан
• 63 080 баллов

343 просмотра

  • Excel
  • ВБА

Если в ячейках подряд есть … ПОДРОБНЕЕ

ответил
24 сент. 2022 г.
в других
к
нариккадан
• 63 080 баллов

1534 просмотра

  • ява
  • первенствовать
  • апач-пои
  • Массивы Javascript напротив включений 8 августа 2022 г.
  • Как определить тип объединения строковых литералов из констант в Typescript 3 августа 2022 г.
  • Typescript с Webpack — вам может понадобиться соответствующий загрузчик для обработки этого типа файлов, в настоящее время загрузчики отсутствуют настроен на обработку этого файла 3 августа 2022 г.
  • Как правильно использовать хук useState в React с машинописным текстом? 3 августа 2022 г.
  • Почему Event.target не является элементом в Typescript? 3 августа 2022 г.
  • Все категории
  • ЧатGPT
    (11)
  • Апач Кафка
    (84)
  • Апач Спарк
    (596)
  • Лазурный
    (145)
  • Большие данные Hadoop
    (1907)
  • Блокчейн
    (1673)
  • С#
    (141)
  • С++
    (271)
  • Консультирование по вопросам карьеры
    (1060)
  • Облачные вычисления
    (3469)
  • Кибербезопасность и этичный взлом
    (162)
  • Аналитика данных
    (1266)
  • База данных
    (855)
  • Наука о данных
    (76)
  • DevOps и Agile
    (3608)
  • Цифровой маркетинг
    (111)
  • События и актуальные темы
    (28)
  • IoT (Интернет вещей)
    (387)
  • Джава
    (1247)
  • Котлин
    (8)
  • Администрирование Linux
    (389)
  • Машинное обучение
    (337)
  • Микростратегия
    (6)
  • PMP
    (423)
  • Power BI
    (516)
  • Питон
    (3,193)
  • РПА
    (650)
  • SalesForce
    (92)
  • Селен
    (1569)
  • Тестирование программного обеспечения
    (56)
  • Таблица
    (608)
  • Таленд
    (73)
  • ТипСкрипт
    (124)
  • Веб-разработка
    (3002)
  • Спросите нас о чем угодно!
    (66)
  • Другие
    (2231)
  • Мобильная разработка
    (395)
  • Пользовательский интерфейс UX-дизайн
    (24)

Подпишитесь на нашу рассылку и получайте персональные рекомендации.

Уже есть учетная запись? .

Код VBA для защиты паролем файла Excel

Получите БЕСПЛАТНУЮ электронную книгу VBA с 30 наиболее полезными макросами Excel VBA.

Автоматизируйте Excel, чтобы сэкономить время и перестать выполнять работу, которую могла бы выполнять обученная обезьяна.

Получите бесплатную электронную книгу


Опубликовано от Excel Off The Grid

Пароль, защищающий файл Excel, решает две основные задачи (1) предотвращает несанкционированный доступ к файлу Excel (2) предотвращает несанкционированное изменение файла Excel.

Защита на уровне файлов отличается от защиты листа или книги. Защита рабочего листа контролирует, что пользователь может или не может делать на рабочем листе, например вставлять строки или вводить данные в ячейки. Защита рабочей книги не позволяет пользователям добавлять, удалять, перемещать, скрывать или отображать рабочие листы.

Защита на уровне файлов позволяет использовать два пароля: (1) для открытия файла (2) для изменения файла.

Сохранить файл Excel с защитой

 'Сохранить файл, для открытия которого требуется пароль
Пароль ThisWorkbook.SaveAs: = "fileOpenPassword"
'Сохраните файл, чтобы разрешить доступ, но для изменения требуется пароль
ThisWorkbook.SaveAs  writeResPassword:="modifyFilePassword"
'Сохранить файл с паролем, необходимым для открытия и изменения файла
ThisWorkbook.SaveAs  Password:="fileOpenPassword", _
writeResPassword:="modifyFilePassword" 

Если файл уже существует, появится подтверждающее сообщение. Чтобы код VBA работал бесперебойно, вам нужно отключить отображение предупреждений перед выполнением кода, а затем снова включить его после сохранения файла.

 'Сохранить файл и подавить сохранение как предупреждающее сообщение
Application.DisplayAlerts = Ложь
ThisWorkbook.SaveAs Password:="fileOpenPassword", _
writeResPassword:="изменить пароль к файлу"
Application. DisplayAlerts = True 

Открытие защищенного паролем файла Excel

При открытии защищенного паролем файла Excel вручную отображается подсказка пароля:

Файл Открыть пароль

Файл Изменить пароль

Использование VBA. подсказка не появляется.

 'Открыть файл, защищенный паролем
Workbooks.Open Filename:="C:\Users\marks\Documents\PasswordProtectedFile.xlsm", _
Пароль:="fileOpenPassword", writeResPassword:="fileModifyPassword" 

Операторы Password и writeResPassword должны быть включены или исключены в зависимости от открываемого файла.

Если указан неправильный пароль, появится следующее сообщение об ошибке.

Приведенный ниже код перехватит ошибку и предоставит специальное сообщение.

 'Поймать неправильный пароль
При ошибке Возобновить Далее
Workbooks.Open Filename:="C:\Users\marks\Documents\PasswordProtecedFile.xlsm", _
Пароль: = "fileOpenPassword", writeResPassword: = "fileModifyPassword"
Если Err. Number <> 0 Тогда
    MsgBox "Введен неверный пароль"
    Выйти из подпрограммы
Конец, если
При ошибке Перейти к 0 

Другие связанные фрагменты кода VBA

Следующие фрагменты кода VBA будут полезны для применения этого поста в более широком контексте.

  • Защита и снятие защиты книг
  • Защита и снятие защиты с рабочих листов

Об авторе

Привет, меня зовут Марк, и я запускаю Excel Off The Grid.

Мои родители рассказали мне, что в возрасте 7 лет я объявил, что стану квалифицированным бухгалтером. Либо я был экстрасенсом, либо у меня не было воображения, как это и произошло. Однако мое путешествие по-настоящему началось только в 35 лет.

В 2015 году я устроился на новую работу, на которой регулярно работал после 22:00. В результате я редко видел своих детей в течение недели. Итак, я начал искать секреты автоматизации Excel. Я обнаружил, что, создав небольшое количество простых инструментов, я могу комбинировать их по-разному, чтобы автоматизировать почти все свои обычные задачи. Это означало, что я мог работать меньше часов (и мне повысили зарплату!). Сегодня я обучаю этим техникам других специалистов в рамках нашей программы обучения, чтобы они тоже могли проводить меньше времени на работе (и больше времени со своими детьми и любимым делом).


Вам нужна помощь в адаптации этого поста к вашим потребностям?

Я предполагаю, что примеры в этом посте не совсем соответствуют вашей ситуации. Мы все используем Excel по-разному, поэтому невозможно написать пост, который удовлетворит все потребности. Потратив время на то, чтобы понять методы и принципы, изложенные в этом посте (и в других местах на этом сайте), вы сможете адаптировать его к своим потребностям.

Но если вы все еще испытываете трудности, вам следует:

  1. Почитайте другие блоги или посмотрите видео на YouTube по той же теме. Вы получите гораздо больше пользы, открыв для себя собственные решения.
  2. Спросите «Excel Ninja» в вашем офисе. Удивительно, какие вещи знают другие люди.