Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в 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’ом.
            Коллеги, поделитесь мыслями.

    Обсуждение закрыто.