Макрос — это небольшая программа, которая выполняет заранее записанную последовательность действий: нажатия клавиш, клики мышью, операции с ячейками таблицы или файлами. Его задача — убрать ручную рутину: то, что вы делаете руками десятки раз, макрос повторяет за секунды и без опечаток.
Содержание
Чаще всего слово «макрос» вспоминают в связке с Excel, но макросы работают и вне таблиц — в текстовых редакторах, в играх, при обработке файлов. Ниже разбираю, чем макрос отличается от скрипта и горячей клавиши, как записать макрос в Excel двумя способами и какие приложения выбрать под конкретную задачу.
Макрос, скрипт и горячая клавиша: чем они отличаются
Эти три понятия легко перепутать, поэтому разведу их сразу.
Горячая клавиша — это одно действие по одной комбинации: Ctrl+C копирует, Ctrl+S сохраняет. Она ничего не «записывает», а просто вызывает встроенную команду.
Макрос — это последовательность действий, сохраненная под одним запуском. Внутри он часто и есть набор нажатий и кликов, записанных в нужном порядке. Макрос можно повесить на ту же горячую клавишу или на кнопку.
Скрипт — это программа на текстовом языке (например, на VBA, Python или JavaScript), которая описывает логику: условия, циклы, обращение к данным. Границы размыты: макрос, записанный рекордером в Excel, превращается в скрипт на VBA, который потом можно открыть и дописать руками.
Проще держать в голове цепочку: горячая клавиша — одно действие, макрос — записанная цепочка действий, скрипт — та же цепочка плюс логика на языке программирования.
Как создают макросы: запись и код
Есть ровно два способа получить макрос, и они дополняют друг друга.
Запись рекордером. Вы включаете запись, делаете действия руками, останавливаете запись — программа сохраняет все, что вы сделали. Способ подходит новичкам: код писать не нужно. Минус — записанный макрос повторяет действия буквально, без условий и проверок.
Написание кода. Вы описываете действия на языке макросов вручную. Так можно добавить условия («если ячейка пустая — пропустить»), циклы и обработку ошибок. Способ требует базовых навыков, зато дает макросы любой сложности.
На практике их комбинируют: записывают заготовку рекордером, потом открывают ее в редакторе и дорабатывают кодом.
Макросы в Excel: рекордер и VBA
Excel — самый частый сценарий, поэтому разберу его подробно. Здесь макросы встроены и не требуют сторонних программ.
Первый способ — рекордер. Вкладка «Разработчик» -> «Запись макроса», далее вы выполняете действия и жмете «Остановить запись». Если вкладки «Разработчик» нет, включите ее в «Файл -> Параметры -> Настроить ленту». Записанный макрос сразу можно запустить по кнопке или по сочетанию клавиш.
Второй способ — язык VBA (Visual Basic for Applications), встроенный язык макросов Office. Редактор открывается по Alt+F11. VBA нужен там, где рекордера не хватает: условия, циклы, работа с несколькими листами.
Вот простой рабочий макрос: он проходит по столбцу с датами оплаты и подсвечивает строки, где срок уже прошел.
Sub ВыделитьПросроченные()
Dim ячейка As Range
' Проходим столбец B (даты оплаты) в строках 2-100
For Each ячейка In Range("B2:B100")
If IsDate(ячейка.Value) Then
If ячейка.Value < Date Then
' красим всю строку в бледно-красный
ячейка.EntireRow.Interior.Color = RGB(255, 200, 200)
End If
End If
Next ячейка
End Sub
Что делает код по шагам: For Each перебирает ячейки диапазона; IsDate отсекает пустые и текстовые ячейки, чтобы сравнение не упало с ошибкой; ячейка.Value < Date сравнивает дату оплаты с сегодняшней (Date — текущая дата системы); просроченные строки заливаются цветом. Запускается макрос по Alt+F8 или по назначенной кнопке.
Частая ошибка новичка — сравнивать дату без проверки IsDate. Если в столбце попадется текст или пустая ячейка, сравнение даст неверный результат или ошибку времени выполнения. Проверка типа перед сравнением — обязательный шаг.
Office Scripts: макросы Excel в облаке
У классического VBA появилась современная альтернатива — Office Scripts. Это язык автоматизации на TypeScript (надстройка над JavaScript), который работает в Excel в браузере, в Windows и на Mac. У него свой рекордер действий (Record Actions), который так же записывает шаги в код.
Разница простая: VBA живет в конкретном файле на десктопе и полнее покрывает функции настольного Excel; Office Scripts хранится в облаке, кроссплатформенный и запускается по расписанию через Power Automate — файл может обновляться сам, даже не открытым. Если вы работаете в настольном Excel — остается VBA. Если в Excel для веба и нужна автоматизация по расписанию — смотрите в сторону Office Scripts.
Приложения для макросов вне Excel
Для мыши, клавиатуры и повторяющихся действий в любых программах есть отдельные приложения. Ниже — проверенные на 2026 год инструменты под конкретные задачи, а не каталог всего подряд.
AutoHotkey — бесплатный инструмент автоматизации для Windows с открытым кодом. Актуальна ветка v2 (стабильный релиз 2.0.27, август 2026); старая ветка v1 больше не развивается, поэтому новые скрипты пишут на v2. Подходит для горячих клавиш, автозамены текста, запуска программ и сложных сценариев. Макросы задаются кодом, поэтому новичку придется разобраться в синтаксисе, зато потолок возможностей высокий.
Jitbit Macro Recorder — рекордер под Windows: записывает движения мыши и нажатия клавиш и повторяет их. Умеет собирать макрос в отдельный EXE-файл (запустится на компьютере без установленной программы), добавлять логику через «if-then» и вставлять фрагменты на C# в платной версии. Есть бесплатная версия Lite с базовой записью. Хороший выбор, когда программировать не хочется, а автоматизировать нужно.
Power Automate Desktop — бесплатный для пользователей Windows инструмент от Microsoft для сценариев уровня RPA: автоматизация действий в приложениях и в вебе через визуальный конструктор, без написания кода. Подходит, когда нужно связать несколько программ в одну цепочку.
Python (openpyxl, xlwings) — когда задача выходит за рамки одного файла. Библиотеки openpyxl и pandas читают и пишут .xlsx напрямую, даже без установленного Excel (удобно на сервере), а xlwings управляет уже открытым Excel и способен заменить громоздкие макросы VBA чистым кодом.
Сводная таблица поможет выбрать под задачу.
| Задача | Что взять | Когда выбрать иначе |
|---|---|---|
| Автоматизировать таблицу на десктопе | Excel + VBA | Для веба и расписания — Office Scripts |
| Записать действия мыши и клавиатуры | Jitbit Macro Recorder | Нужен код и гибкость — AutoHotkey |
| Горячие клавиши и автозамена в Windows | AutoHotkey v2 | Простая запись без кода — Jitbit |
| Связать несколько программ в цепочку | Power Automate Desktop | Обработка данных без интерфейса — Python |
| Обработать много файлов и данных | Python (openpyxl, pandas) | Управлять живым Excel — xlwings |
Когда макросов не хватает: переход к Python
Записанный макрос и VBA хорошо закрывают действия внутри одного файла. Но как только появляется много источников данных, форматов и файлов, макрос становится хрупким: он повторяет клики буквально и ломается при изменении интерфейса.
Тогда логику переносят в полноценный код. Вот аналог макроса на Python: та же задача «посчитать сумму по каждому менеджеру», но без Excel и без записи кликов — чистой обработкой данных.
# Задача-"макрос": суммировать продажи по каждому менеджеру
rows = [
["Иванов", "1200"],
["Петрова", "800"],
["Иванов", "300"],
]
totals = {}
for name, amount in rows:
totals[name] = totals.get(name, 0) + int(amount)
for name in sorted(totals):
print(name, totals[name])
# Вывод:
# Иванов 1500
# Петрова 800
Код проходит по строкам, накапливает сумму по каждому имени в словаре и печатает результат по алфавиту. Такой скрипт легко расширить: подключить чтение из файла через openpyxl, добавить условия и фильтры, запускать по расписанию. Это и есть естественный следующий шаг после макросов — от записи действий к управляемому коду.
Выводы
Макрос — это записанная цепочка действий, которая убирает ручную рутину. Для таблиц на десктопе базовый инструмент — рекордер Excel и язык VBA; для веба и автоматизации по расписанию — Office Scripts. Для действий вне Excel выбирают под задачу: AutoHotkey для горячих клавиш и кода, Jitbit Macro Recorder для записи мыши и клавиатуры, Power Automate Desktop для связки программ. Когда данных и файлов становится много, макросы уступают место коду на Python — он гибче и не ломается от смены интерфейса.
Где применяется на практике
Макросы и автоматизация — это повседневная работа аналитиков, бухгалтеров, тестировщиков и всех, кто регулярно обрабатывает данные. Умение переходить от записанного макроса к коду на Python заметно расширяет круг задач, которые можно закрыть без ручной рутины.
Освойте тему на практике
Системно освоить обработку и автоматизацию данных на Python помогает курс Python для аналитики данных: от чтения таблиц и файлов до автоматических отчетов вместо ручных операций в Excel.
Освойте тему на практике
Посмотреть, как это выглядит в реальных задачах, и задать вопросы преподавателям можно на бесплатных открытых уроках и вебинарах Otus.
Смежные темы: Основы работы со скриптами, Текущая дата и время в Python.
FAQ
Опасны ли макросы и почему Excel их блокирует?
Макрос — это код, и вредоносный макрос из чужого файла может навредить. Поэтому Office по умолчанию блокирует макросы из файлов, скачанных из интернета. Запускайте макросы только из проверенных источников, а свои файлы с кодом сохраняйте в формате .xlsm.
Нужно ли уметь программировать, чтобы пользоваться макросами?
Нет. Простые макросы записываются рекордером в Excel или в Jitbit Macro Recorder без единой строки кода. Программирование нужно, когда требуются условия, циклы и обработка ошибок.
Работают ли макросы Excel на Mac и в браузере?
VBA работает в настольном Excel на Windows и Mac, но в Excel для веба он недоступен. Для браузерной версии и кроссплатформенной автоматизации используют Office Scripts.



