Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

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».

    Окно «VBAProject - Project Properties»

    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 по тематическим разделам со ссылками на все статьи.

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

    1. Здравствуйте Евгений.
      Имеется ли способ на 100% защитить код от просмотра/копирования?
      Просмотрел в сети много мануалов, и везде пишут, что все пароли с проекта снимаются за 5-20 минут не зависимо от вида блокировки.
      В планах написать программу, аналогов которой не существует, и которая будет содержать коммерческую тайну нашей фирмы. Возможность использования софта, путем снятия пароля третьими лицами отбивает все желание.

      1. Здравствуйте, Тамир!
        Когда я интересовался защитой VBA-проекта паролем, не нашел надежного способа.

        1. Провел мониторинг.
          Что скажете касаемо обфускации кода и переноса кода в dll, как методов защиты кода?
          В сети пишут, что это действенные методы, или они так же имеют недочеты?

          1. Сбитый Лётчик Небосводов

            Здравствуйте, Тамир!
            Здравствуйте, Евгений!
            Здравствуйте, коллеги!
            dll – хорошо и надёжно, вот только таскать с xls ещё и dll не удобно, и большинству это не понравится.
            Обфускация как надёжная защита с моей т.зр. вообще смешно: от копирования никак вообще не защищает, читаемость быстро восстанавливается Relace All’ом.
            Коллеги, поделитесь мыслями.

    Добавить комментарий

    Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.