Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Excel Starter 2010 Еще…Меньше
В Excel вы можете изменять параметры безопасности макросов, определяя, какие макросы и при каких обстоятельствах должны выполняться при открытии книги. Например, можно разрешить выполнение макроса в зависимости от наличия цифровой подписи надежного разработчика.
Дополнительные сведения о параметрах безопасности макросов в документах Microsoft Office см. в статье Включение и отключение макросов в файлах Office.
Ниже приведен список различных параметров безопасности макросов. Если установлена антивирусная программа, работающая с Microsoft 365, то помимо всех параметров книга, содержащая макросы, перед открытием проверяется также на наличие известных вирусов.
-
Отключить все макросы без уведомления. Выберите этот параметр, если не доверяете макросам. Все макросы в документе и предупреждения о безопасности макросов отключаются. Если у вас есть документы, содержащие неподписанные макросы, которым вы доверяете, эти документы можно поместить в надежное расположение. Документы из надежных расположений разрешается выполнять без проверки системой центра управления безопасностью.
-
Отключить все макросы с уведомлением. Этот параметр задан по умолчанию. Выберите этот вариант, если хотите отключить макросы, но при этом получать предупреждения о безопасности, если макросы есть. Так вы можете в каждом конкретном случае решать, стоит ли включать эти макросы.
-
Отключить все макросы кроме макросов с цифровой подписью. Этот параметр подобен параметру Отключить все макросы с уведомлением, не считая того, что макрос с цифровой подписью надежного издателя может выполняться, если вы уже доверяете этому издателю. Если издатель не считается надежным, вы получаете уведомление. Так вы можете выбрать, следует ли включить эти подписанные макросы и выразить доверие издателю. Все макросы без подписи отключаются без уведомления.
-
Включить все макросы (не рекомендуется, возможен запуск опасной программы). Выберите этот параметр, чтобы разрешить выполнение всех макросов. В таком случае ваш компьютер становится уязвимым для потенциально опасного кода, поэтому этот вариант не рекомендуется.
-
Доверять доступ к объектной модели проектов VBA Этот параметр используется для разработчиков и используется для преднамеренной блокировки или блокировки программного доступа к объектной модели VBA из любого клиента автоматизации. Другими словами, он обеспечивает параметр безопасности для кода, который создается для автоматизации программы Office и программного управления средой и объектной моделью Microsoft Visual Basic для приложений (VBA). Этот параметр настраивается для каждого пользователя и каждого приложения и по умолчанию не имеет доступа. Этот параметр безопасности затрудняет несанкционированный доступ к созданию кода «саморекопирования», который может навредить системам конечных пользователей. Чтобы любой клиент автоматизации мог получить доступ к объектной модели VBA программным путем, пользователь, работающий с кодом, должен явно предоставить доступ. Чтобы включить доступ, выберите этот квадрат.
В Office используется технология Microsoft Authenticode, позволяющая создателям макросов добавлять цифровую подпись в файл или проект макроса. Сертификат, используемый для создания подписи, подтверждает, что макрос или документ создан автором подписи, а подпись подтверждает, что макрос или документ не был изменен.
Установив свой цифровой сертификат, вы можете подписывать файлы и макросы.
Получение цифрового сертификата для подписания
Цифровой сертификат можно получить в коммерческом центре сертификации (ЦС) или у администратора безопасности локальной сети либо ИТ-специалиста.
Дополнительные сведения о центрах сертификации, обслуживающих продукты Майкрософт, см. в списке участников программы корневых сертификатов Майкрософт.
Создание своего самозаверяющего цифрового сертификата
С помощью программы Selfcert.exe вы можете создать свой самозаверяющий сертификат.
Примечание: Поскольку созданный вами цифровой сертификат не выдается официальным доверенным центром сертификации, макросы, подписанные с помощью такого сертификата, называют макросами с собственной подписью. В Microsoft Office самозаверяющие сертификаты считаются надежными только на том компьютере, на котором они добавлены в хранилище личных сертификатов.
Дополнительные сведения о добавлении цифровой подписи к макросам см. в статье Подписание макроса.
Изменение параметров безопасности макросов
Вы можете изменять параметры безопасности макросов в центре управления безопасностью, если только системный администратор в вашей организации не запретил это, изменив настройки по умолчанию.
-
На вкладке Разработчик в группе Код нажмите кнопку Безопасность макросов.
Чтобы включить вкладку «Разработчик», см. раздел Отображение вкладки «Разработчик».
-
В категории Параметры макросов в разделе Параметры макросов выберите нужный вариант.
Примечание: Все изменения, внесенные в категории Параметры макросов в Excel, применяются только к Excel и не влияют на другие приложения Microsoft Office.
Доступ к центру управления безопасностью также можно получить из окна «Параметры Excel». Для этого нажмите кнопку Параметры (Excel 2010–2016) или кнопку Microsoft Office (Excel 2007), а затем выберите центр управления > Центр управления Параметры >Макрос Параметры.
Дополнительные сведения о безопасности макросов см. в следующих статьях:
-
Добавление, удаление и изменение надежного расположения
-
Добавление, удаление и просмотр надежного издателя
-
Включение и отключение макросов в файлах Office
-
Включение и отключение предупреждений системы безопасности о ссылках и файлах с подозрительных веб-сайтов
-
Просмотр параметров в центре управления безопасностью
Устранение неполадок
Не удается изменить параметры безопасности макросов
Некоторые пользователи не могут изменять параметры центра управления безопасностью из-за групповых политик безопасности в их организациях. В таких случаях необходимо обратиться к ИТ-администратору организации.
Что случилось с параметрами безопасности «Очень высокий», «Высокий», «Средний» и «Низкий»?
Параметр Excel 2003 |
Эквивалент в Excel 2007/2010/2013/2016 |
Дополнительные сведения |
---|---|---|
Очень высокий |
Отключить все макросы без уведомления |
В Excel 2003 макросы VBA выполняются только при условии, что выбран параметр «Доверять всем установленным надстройкам и шаблонам» (в Excel 2003 на вкладке «Надежные издатели» в диалоговом окне «Безопасность») и макросы (с подписью или без) хранятся в определенной надежной папке на жестком диске пользователя. Если эти условия не соблюдены, то при использовании параметра «Очень высокий» макросы VBA не выполняются в Excel 2003. |
Высокий |
Отключить все макросы кроме макросов с цифровой подписью |
В Excel 2003 могут выполняться только исполняемые файлы (EXE или COM), подписанные утвержденным надежным источником (то есть имеющие сертификат). В противном случае все исполняемые модули, связанные с документами или внедренные в них, автоматически отключаются без предупреждения, когда пользователь открывает документы. При установке всех приложений Office 2003 по умолчанию задается параметр «Высокий». |
Средний |
Отключить все макросы с уведомлением |
В Excel 2003 пользователям при открытии документа предлагается включить или отключить исполняемые модули. На этом уровне необходимо принять сертификат для каждого исполняемого модуля, добавив сертификат в соответствующий сегмент реестра на компьютере под управлением Windows. Последующие запросы на выполнение макроса от надежного источника принимаются автоматически (исполняемые модули выполняются без предварительного запроса пользователя). |
Низкий |
Включить все макросы (не рекомендуется, возможен запуск опасной программы) |
В Excel 2003 все макросы выполняются без ограничений. Этот уровень безопасности не защищает от вредоносных программ, не позволяет принимать сертификаты и не считается безопасным в целом. Этот уровень использовать не рекомендуется. |
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
К началу страницы
Нужна дополнительная помощь?
It is a best practice, to protect the Macro (VBA Code) from other users to edit or view. In this article, we explain to create a simple macro and protect the same “VBA Project” using a password in Excel from other users.
Implementation:
Follow the below steps to protect your excel macro with a password:
Step 1: Open an excel file, to create a simple “hello world” macro.
Step 2: Press Alt + F11 – to open Visual Basic Editor.
Step 3: Click Insert >> Module, which will add a new module as in Img1.
Img 1
Step 4: Type the below code in “code window”.
Sub firstMacro() MsgBox "Hello World" End Sub
Step 5: Right-click “VBAProject (Book1)” and then click “VBAProject Properties”.
Step 6: GoTo Protection Tab >> Check “Lock project for viewing” and type your password in both Password and Confirm password input text boxes. Press “OK”
Step 7: Save your Excel workbook as Excel Macro-Enabled Workbook (*.xlsm) and close
Step 8: Now reopen your excel file. Press Alt+F8 – to open the Macro dialog box. Select the macro “firstMacro” and click “RUN”.
Step 9: Our macro will pop up below the message box. Close or press OK to hide the message box
Step 10: Press Alt + F11 – to open Visual Basic Editor. Now user cannot see any information in the VBA.
Step 11: Double click “VBAProject (vbaProtect.xlsm)”, It will ask the user to enter a password.
Step 12: Type your password and press “OK”. Now user can see all the excel objects and Macro.
At this point we have successfully created a macro in VBA and protected it with a password.
Время на прочтение
5 мин
Количество просмотров 25K
Всем привет! Я обычный пользователь MS Excel. Не являющийся профессиональным программистом, но накопивший достаточно опыта, для установки и обхода защиты проектов VBA.
Дисклеймер:
В данной статье рассмотрены виды защиты проектов VBA, от несанкционированного доступа. Их сильные и слабые стороны – ранжирование.
Цель статьи показать слабые и сильные стороны каждого вида защиты проекта VBA в MS Office.
Демонстрация разработанных инструментов, в надстройке Macro Tools VBA, для снятия и установки той или иной защиты.
Все инструменты реализованы стандартными средствами VBA, без использования дополнительных библиотек.
Главная панель Надстройки Macro Tools VBA
Первый вид защиты — Обычный пароль
Время на снятие: мгновенно
Недостаток: быстрый доступ к запароленному модулю VBA
Стандартный инструмент (В среде VBE: панель Tools -> VBAProject Properties -> Protection).
Самая легко снимающаяся защита. В интернете легко находится код, для снятия данной защиты.
Данную защиту можно снять следующим инструментом:
Второй вид защиты — Project is Unviewable
Время на снятие: от 10 до 15 мин (в ручную)
Недостаток: доступ к исходному коду модуля VBA
Один из самых распространённых видов защит. Встречается в 95% файлах с защитой модуля VBA. При попытке открыть проект, открывается диалоговое окно, с сообщением: Project is Unviewable.
Большинство пользователей Excel, не могут снять данную защиту, так как она имеет множество вариации и нюансов, для ее снятие нужно иметь представление о внутренней структуре файла Excel.
Основан, данный вид защиты, на изменение ключей:
CMG=«4A488FCC54D054D054D054D0»
DPB=«0B09CE0F8E108E108E»
GC=«CCCE09520B120C120CED»
в файле vbaProject.bin
.
Кратко, как создается данная защита
Для создания данной защиты нужно, разархивировать файл Excel. Перейти в архиве в папку xl, открыть файл vbaProject.bin, в конце файла находятся наши ключи, редактируем значения ключей на пусто, сохраняем файл. Переводим наш архив, обратно в файл Excel. Готово!
Это самый простой вариант данной защиты, но существует множество модификаций.
Алгоритм снятия защиты Project is Unviewable.
1) Разархивируем подопытный файл, переходим в файл …xl_relsworkbook.xml.rels
2) В файле workbook.xml.rels ищем строку, содержащую слово vbaProject, обычно имеет следующий вид: />. В этой строке нас интересует ключ Target,иего значение. Значение является название файла, в котором находится проект VBA. Иногда, защищающий меняет значения ключа на printerSettings.bin.Получается маскировка файла с проектом VBA под другой файл.
3) Открываем на редактирование файл, указанный в ключе Target, ищем в файле ключи CMG, DPB, GC. И меняем в их названиях любую букву на любую другую, например: CMC, DPC, CC. При поиске нужно быть аккуратным, так как защищающий может поместить в проект форму, подписью повторяющую один из ключей, например такую: DPB=«0B09CE0F8E108E108E». При ее изменении проект VBA, будет удален из книги Excel. Сохраняем и закрываем файл.
4) Переводим архив обратно в файл Excel.
5) Запускаем приложение Excel, выполняем следующее: в Центре управления безопасностью -> Параметры макросов -> Отключить все макросы без уведомления. Перезапускаем Excel. Данная операция нужна, для блокировки защиты, которую иногда ставят авторы макросов. Данная защита реализована следующим образом. В модуле VBA «ЭтаКнига», создается процедуры, реагирующие на события открытия книги или закрытия книги. Эти события обычно проверяют, наличие пароля на проект VBA, запрет сохранения и прочее.
6) Открываем файл. Если все правильно сделано то, Excel, будет ругаться на не правильные ключи, которые мы отредактировали, в пункте 3. Жмем, да, пока данные сообщения не закончатся и диалоговое окно закроется.
Если данное сообщение не появляется то, вы отредактировали не файл который содержит проект VBA.
7) Открываем проект VBA. После всего, проект VBA должен быть доступен.
Но иногда защита не снимается, тогда нужно сохранить файл, проверить, что он действительно сохранился! И проделать повторно операции с 1 по 7. Обычно так происходит когда в файле workbook.xml.rels в ключе Target установлено printerSettings.bin.При сохранение, Excel исправляет это на значение на vbaProject.bin
Данную защиту можно установить и снять следующим инструментом:
Третий вид защиты — Hidden Module, скрытые модули VBA
Время на снятие: от 15 до 20 мин (нужен редактор OLE — объектов, Structured Storage Viewer, например.
Недостаток: доступ к коду модуля VBA
Менее распространенный вид защиты обычно встречается в комбинации с защитой Project is Unviewable. При установке данной защиты модуль VBA не отображается в проекте книги Excel. О его существовании можно узнать, проанализировав код VBA (что требует время!) или открыть файл Excel в программе OpenOffice или LibreOffice (так же можно смотреть код при защите Project is Unviewable, но данный способ не дает возможность получить рабочий файл, без пароля).
Просмотр кода VBA в LibreOffice
Кратко, как создается данная защита
Для создания данной защиты нужно отредактировать файл с проектом VBA — vbaProject.bin или printerSettings.bin,в зависимости от настроек в файле …xl_relsworkbook.xml.rels. В конце файла удаляются строки вида: Module1=32, 32, 635, 330, Z. С нужными названиями модулей.
Для снятия данной защиты нужно в файле vbaProject.bin — восстановить удаленные записи модулей.
Данную защиту можно установить следующим инструментом.
Четвертый вид защиты — Обфускация кода
Время на снятие: неизвестно, зависит от объема кода и пере использования частей кода
Обфусцированный код VBA
Недостаток: необходимость тестирование файла после обфускации, на работоспособность
Крайне редкий вид защиты, основанный на изменении исходного кода VBA, в не удобочитаемый вид для человека. Удаляются все комментарии, форматирование кода, переименовываются названия всех переменных, процедур, функций, модулей и прочего. Злоумышленнику никогда не удастся восстановить первоначальный вид кода, и потребует достаточно много времени для, его восстановления в удобно читаемый вид для человека.
Для де-обфускации кода нужно иметь время, специализированное ПО.
Данную защиту можно установить следующим инструментом.
Пятый вид защиты — Перенос кода в dll
Время на снятие: неизвестно, зависит от языка программирования и квалификации
Недостаток: необходимости в дополнительном файле dll
Один из самых редких видов защиты. Основная идея перенос основного кода в отдельную библиотеку dll, написанную на любом другом языке программирования. Не распространённость данный вид защиты получил по следующей причине, необходимости за файлом Excel, «таскать» дополнительный файл, dll.
Для получения доступа к коду dll, нужно обладать специальными знаниями.
Заключение
В заключении хочу выделить бесполезность защит: Project is Unviewable и Hidden Module которые, по существу ни отчего не защищают. Позволяют просматривать код VBA, без изменения исходного файла, в таких программах как OpenOffice или LibreOffice. Так и снимаются без особых проблем.
Правильная защита макросом
В большинстве случаев защита макросом, которую я встречаю во множестве проектов, выглядит следующим образом:
Worksheets("Лист1").Unprotect Password:="123" 'тут макрос делает действия Worksheets("Лист1").Protect Password:="123"
То есть автор файла вынужден ставить защиту от шаловливых ручек пользователей, но чтобы его макрос мог выполнить необходимые действия, ему приходится временно снимать ее и затем включать снова. Такая техника работает, но далека от совершенства. Во-первых, это неудобно и требует введения подобных конструкций в каждый ваш макрос. Во-вторых, если выполнение макроса прервется с ошибкой, то лист останется незащищенным.
Есть гораздо более легкий и красивый способ решить задачу.
Нажмите Alt+F11, чтобы попасть в редактор Visual Basic. Затем найдите в левом верхнем углу в окне Project Explorer (если его не видно, то нажмите Ctrl+R) модуль ЭтаКнига (ThisWorkbook) и откройте двойным щелчком:
Скопируйте туда этот код:
Private Sub Workbook_Open() 'включаем защиту первого листа для пользователя, но не макроса Worksheets("Лист1").Protect Password:="123", UserInterfaceOnly:=True 'второй лист защищаем аналогично, но с возможностью пользоваться группировкой Worksheets("Лист2").EnableOutlining = True Worksheets("Лист2").Protect Password:="555", UserInterfaceOnly:=True End Sub
Эта процедура будет автоматически запускаться при открытии файла и ставить защиту на заданные листы книги. Причем параметр UserInterfaceOnly, который мы дополнительно ввели, указывает Excel, что защита не должна распространяться на действия выполняемые макросом, а только на операции пользователя. Для второго листа все еще веселее — строка с параметром EnableOutlining разрешает пользоваться группировкой (символы плюс-минус для сворачивания-разворачивания строк и столбцов) на защищенном листе.
Всего три строчки кода, зато как удобно!
Ссылки по теме
- Что такое макросы и куда копировать их код
- Как поставить защиту листа, книги или всего файла
Старшие пользователи Excel всегда создают несколько кодов VBA для решения сложных проблем. Но иногда они хотят защитить код VBA от просмотра или уничтожения другими. Так же, как вы можете использовать пароль для защиты книг и рабочих листов, вы также можете установить пароль для защиты макросов в Excel.
Защитить или заблокировать код VBA в Excel
Защитить или заблокировать код VBA в Excel
Чтобы предотвратить отключение ваших кодов другими лицами, следующие шаги помогут вам установить пароль для защиты макросов.
1, нажмите Alt + F11 ключи, чтобы открыть существующий код, и в Окно Microsoft Visual Basic для приложений, нажмите Tools
> Свойства VBAProject, см. снимок экрана:
2. В VBAProject — Свойства проекта диалоговое окно, щелкните Protection вкладку, а затем проверьте Заблокировать проект для просмотра, наконец, введите и подтвердите пароль, который вы хотите защитить код в Пароль для просмотра свойств проекта раздел, см. снимок экрана:
3, Затем нажмите OK для выхода из диалогового окна и закрыть Окно Microsoft Visual Basic для приложений.
4. Сохраните книгу как Excel Macro-Enabled Workbook отформатируйте и закройте его, чтобы сработала защита паролем. В следующий раз, когда вы откроете эту книгу и попытаетесь просмотреть код, вам будет предложено ввести пароль для ввода кода. Смотрите скриншот:
Статьи по теме:
Как установить пароль для защиты книги?
Как защитить сразу несколько листов в Excel?
Как восстановить утерянный пароль защиты рабочего листа в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (1)
Оценок пока нет. Оцените первым!