Значения · Язык и речь

Макрос

существительное, мужской род

Коротко о главном

Что такое макрос

Макрос — это последовательность команд или инструкций, объединённых под одним именем для автоматического выполнения повторяющихся задач. Термин широко используется в офисных пакетах (Word, Excel) для записи действий пользователя и в программировании как предпроцессорная директива для текстовой замены перед компиляцией. Основная цель макроса — экономия времени и устранение ошибок при рутинной обработке данных или документов.

Акварельная иллюстрация цифровых шестеренок, упорядочивающих хаотичные данные в таблицу
Акварельная иллюстрация цифровых шестеренок, упорядочивающих хаотичные данные в таблицу
01

Автоматизация действий в приложениях

Записанная последовательность команд, которая может быть запущена одним действием для выполнения набора операций с данными или документами. Часто реализуется на языках вроде VBA (Visual Basic for Applications) или через встроенные редакторы макросов.

Близкие слова

  • скрипт автоматизации
  • командная последовательность

Вы можете записать макрос в Excel, чтобы он автоматически форматировал таблицу и строил график по выбранным данным.

В Word макрос позволяет быстро применить шаблон оформления ко всем абзацам документа.

02

Инструкция препроцессора в программировании

Конструкция языка программирования (например, C/C++), которая выполняет текстовую замену или генерацию кода на этапе препроцессинга, до начала компиляции. Не является функцией языка во время выполнения программы.

Близкие слова

  • препроцессорная директива
  • макрос-директива

В коде на C++ директива #define MAX_SIZE 1024 определяет макрос, который заменит все вхождения MAX_SIZE числом 1024 перед компиляцией.

Использование макросов позволяет создавать параметризованные шаблоны кода без накладных расходов на вызов функции.

Разница между макросом, скриптом и функцией

Хотя термины часто используются как синонимы в бытовом общении, технически они различаются. Функция — это самостоятельный блок кода, который вызывается из разных мест программы и имеет свой собственный контекст выполнения. Скрипт — это программа, написанная на интерпретируемом языке (например, Python или JavaScript), которая выполняется построчно. Макрос в офисных приложениях часто является записью действий, которая может быть преобразована в скрипт (VBA). В компилируемых языках макрос — это именно текстовая подстановка, не имеющая собственной области видимости и типов данных до этапа компиляции.

Важно понимать границы замены: нельзя назвать функцией макрос-подстановку в C++, так как она не имеет параметров в классическом понимании и не может быть отлажена в рантайме. И наоборот, сложный скрипт автоматизации в Excel, написанный на VBA, часто называют макросом из-за способа его запуска (кнопкой или сочетанием клавиш), хотя технически это полноценная программа.

Безопасность и риски использования

Макросы обладают высокими правами доступа к системе и данным, что делает их потенциальным вектором атак. Вредоносные макросы могут автоматически запускаться при открытии документа (если настройки безопасности не ограничивают это), получая доступ к файловой системе или сети. Поэтому современные версии офисных пакетов по умолчанию блокируют выполнение макросов из недоверенных источников, требуя явного подтверждения пользователя или цифровой подписи разработчика.

При работе с чужими документами стоит проявлять осторожность: даже если файл выглядит как обычный отчет, наличие кнопки «Включить содержимое» должно насторожить. Безопаснее использовать макросы, написанные самостоятельно для собственных задач, где вы контролируете логику их работы.