В этой статье расскажем, как создать макрос в Microsoft Office (Word, Excel и др.), как настроить его безопасное исполнение, защитить код от изменений и как управлять настройками макросов для предотвращения потенциальных угроз.
Что такое макрос и зачем он нужен
– Макрос (на языке VBA — Visual Basic for Applications) — это скрипт, который автоматизирует повторяющиеся задачи внутри приложений Office (например, автоматическое форматирование, импорт данных и др.).
– Макросы могут быть очень полезны, но также несут риск — вредоносный макрос может выполнять нежелательные действия, включая удаление файлов, запуск команд или распространение вирусов. Microsoft предупреждает об этом в официальной документации.
– По умолчанию макросы в Office отключены или требуют подтверждения.
Пошагово: создание макроса в Excel / Word
1. Включите вкладку Разработчик (Developer) в меню ленты:
– Перейдите в Файл → Параметры → Настроить ленту.
– В правой части отметьте «Разработчик (Developer)» и нажмите OK.
2. Перейдите на вкладку Разработчик → Visual Basic или нажмите Alt + F11 для открытия редактора VBA.
3. В редакторе VBA выберите книгу/документ, в котором хотите разместить макрос, и вставьте модуль:
Insert → Module
4. Напишите код макроса, например:
Sub HelloMacro()
MsgBox "Привет, мир!"
End Sub
5. Сохраните файл как макрос-совместимый формат:
– В Excel — .xlsm
– В Word — .docm
Попробуйте запустить его Нажмите Run / Run Sub
Настройки безопасности макросов
1. В Office перейдите в Файл → Параметры → Центр управления безопасностью → Параметры Центра → Параметры Макросов (Macro Settings).
2. Доступные варианты:
– Отключить все макросы без уведомления
– Отключить макросы с уведомлением (по умолчанию)
– Отключить все макросы, кроме тех, что подписаны цифровой подписью
– Включить все макросы (не рекомендуется)
3. Также можно указать доверенные расположения (Trusted Locations) — папки, из которых макросы запускаются автоматически без предупреждения.
Защита кода макроса от просмотра и правок
– В редакторе VBA откройте Tools → VBAProject Properties → Protection вкладка.
– Установите флажок Lock project for viewing и задайте пароль. После этого код макроса нельзя будет просмотреть без ввода пароля, хотя выполнение остаётся возможным.
– Учтите: защита VBA не является надёжной на 100 % — существуют утилиты, расшифровывающие пароль, поэтому не полагайтесь только на этот метод, особенно для критично секретных макросов.
Обработка заблокированных макросов и “заблокированных файлов”
– Если файл загружен из Интернета, Office может автоматически заблокировать макросы и показать предупреждение: «Microsoft has blocked macros from runnning because the source of this file is untrusted».
– Чтобы разблокировать, в Проводнике щёлкните правой кнопкой на файле → Свойства → отметьте “Разблокировать (Unblock)” и нажмите OK. После этого макросы могут снова быть активированы.
– В Интерфейсе Office при открытии документа может показываться жёлтая панель предупреждения — нажмите «Enable Content / Включить содержимое», если доверяете макросу.
Макросы с цифровой подписью
– Подписанные макросы позволяют автоматически запускаться при отсутствии подтверждения, если издатель уже доверенный.
– Для этого нужно получить сертификат (коммерческий или самоподписанный через утилиту SelfCert) и подписать проект макроса в редакторе VBA.
Ограничение макросов через групповые политики (для организаций)
– В доменной среде через групповую политику можно полностью запретить макросы или установить строгие уровни безопасности.
– Административные шаблоны Office включают параметры управления макросами (максимум подпись, отключение и т.д.).
Практические советы и безопасность
– Используйте макросы только из надёжных источников.
– Избегайте включения макросов по умолчанию, отключайте их, если не нужны.
– Включайте макросы только для конкретного документа или через доверенное местоположение.
– Подписывайте макросы цифровыми сертификатами и распространяйте доверие через политики.
– В организациях используйте механизмы «hardening» макросов (разрешать только подписанные макросы, логирование запусков, запрет макросов из Интернета).
Создание макросов в Office даёт мощные возможности автоматизации. Но защита макросов не менее важна: её можно обеспечивать с помощью настроек безопасности, цифровой подписи, защиты кода и политик. Если используете макросы, делайте это безопасно, с пониманием рисков — и настройте Office так, чтобы только проверенный код мог выполняться.