В этой статье расскажем, как создать макрос в 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 так, чтобы только проверенный код мог выполняться.