Макрос — это инструмент автоматизации, позволяющий выполнять повторяющиеся действия в программах Microsoft Office с помощью заранее записанных команд. Он помогает заменить рутину — клики, вставки, форматирование, фильтры — на один сценарий, запускаемый по кнопке или сочетанию клавиш.
Идея автоматизации рутинных операций появилась ещё в 1980-х годах, когда офисные приложения начали превращаться из простых редакторов в мощные рабочие инструменты. В Excel функция записи действий появилась одной из первых. Позже ее подхватили другие продукты Microsoft Office: Word, Outlook, PowerPoint, Access. Сегодня макросы (макрокоманды) превратились в полноценные мини-программы, которые умеют формировать отчёты, объединять данные из разных файлов, взаимодействовать с базами, управлять внешними приложениями. Всё это реализуется с помощью встроенного языка VBA (Visual Basic for Applications), который позволяет описывать любую последовательность действий в виде кода.
Зачем нужны макросы
Их главная цель — освободить человека от однообразных действий. Вместо того, чтобы вручную вводить формулы, копировать строки или выравнивать ячейки, можно один раз записать сценарий, который сделает всё автоматически. Это позволяет сосредоточиться на анализе, принятии решений, а не на механической работе.
Автоматизация рутинных операций
В любом офисном процессе есть повторяющиеся действия: создание отчетов, обработка данных, форматирование таблиц, сортировка и фильтрация. Макрокоманды позволяют превратить такие действия в шаблоны.
Снижение количества ошибок
Ручная работа всегда связана с риском — особенно при работе с большими таблицами. Макросы исключают человеческий фактор: формулы вставляются точно, данные не теряются, расчеты выполняются одинаково при каждом запуске.
Ускорение работы с данными
Автоматизация действий экономит минуты, которые накапливаются в часы и дни. В крупных организациях макросы сокращают время подготовки отчётов и документов в несколько раз. Вместо 20 шагов — один.
Применение в реальных сценариях
На практике макросы применяются в десятках задач:
- в Excel — формирование финансовых отчетов, консолидация данных из разных источников, подготовка графиков и сводных таблиц;
- в Word — автоматическое оформление договоров и актов;
- в Outlook — рассылка писем по шаблону;
- в PowerPoint — массовое обновление слайдов или шаблонов;
- в Access — создание интерактивных форм и отчетов.
Кто использует макросы в работе
Это инструмент не только для программистов, а для всех, кто работает с данными и повторяющимися процессами.
Бухгалтеры, экономисты
Для финансовых специалистов автоматизация стала необходимостью. Макросы в Excel упрощают заполнение отчётных форм, проверку балансов, расчет налогов, консолидирование данных из разных источников. Их часто используют для моделирования прогнозов: код на VBA помогает быстро пересчитать десятки сценариев при изменении исходных параметров.
Аналитики, маркетологи
В аналитике автоматизацияа позволяет собирать данные из CRM, выгрузок, опросов, сайтов, объединять их и визуализировать в одном файле. В маркетинге — помогает готовить отчеты по продажам и рекламным кампаниям
диаграммы, выделяет ключевые показатели, рассылает результаты команде.
IT-специалисты, администраторы
С помощью макрокоманд администраторы ведут учёт оборудования, проверяют настройки рабочих станций, анализируют логи и даже управляют почтовыми рассылками через Outlook. В некоторых компаниях макросы служат мостом между Excel и внутренними системами учёта: таблица может автоматически отправлять запросы, получать результаты и обновлять данные.
Универсальный инструмент для всех
Главное преимущество макросов — в том, что их можно адаптировать под любую задачу. Не важно, идёт ли речь о простом форматировании таблицы или о построении сложных аналитических моделей — сценарий можно создать без глубоких знаний программирования.
Устройство макросов
По своей сути это — это последовательность команд, которую выполняет программа в заданном порядке. Каждая команда соответствует действию пользователя: выделить ячейку, скопировать данные, применить форматирование, вставить формулу и т. д. Вся эта последовательность записывается либо вручную, либо через встроенный инструмент — макрорекордер. После записи ее можно воспроизводить в любое время.
Макрос как последовательность команд
Когда пользователь записывает действия, Excel сохраняет каждое из них как инструкцию. Например:
- выделить диапазон;
- изменить шрифт;
- вставить сумму в соседнюю ячейку.
После сохранения макрос воспроизводит эти действия в том же порядке, но за доли секунды. В простейшем виде это сценарий автоматизации без необходимости программировать. Однако, если добавить к нему код, возможности значительно расширяются.
VBA — язык для управления
В основе макросов лежит язык VBA (Visual Basic for Applications). Это упрощённая версия Visual Basic, встроенная в приложения Microsoft Office. Она позволяет обращаться к любым объектам программы — листам, таблицам, ячейкам, слайдам или письмам — и управлять ими. Например, можно задать, чтобы сценарий выполнялся только при определённом условии или применялся к разным диапазонам данных.
Структура простого кода VBA
Код строится по определённым правилам.
Простейший пример:
Sub (сокращение от Subroutine) задаёт начало процедуры, а End Sub — конец. Всё, что находится между ними, и есть набор команд. Каждая строка — отдельное действие: выбор диапазона, изменение параметра шрифта, заливка цветом.
При запуске Excel интерпретирует код построчно, выполняя все указанные инструкции, как детально прописанный алгоритм, который можно редактировать, улучшать и повторно использовать.
Как создавать макросы в Excel
Прежде чем начать работу с автоматизацией, нужно подготовить Excel. По умолчанию средства разработки скрыты, поэтому сначала нужно включить специальную вкладку.
Подготовка Excel
Чтобы открыть доступ к инструментам записи и редактирования:
- Перейдите в меню Файл → Параметры → Настроить ленту.
- В списке справа отметьте пункт Разработчик (Developer) и нажмите ОК.
После этого на панели появится новая вкладка. Именно здесь находятся все инструменты, связанные с VBA и макросами: кнопка записи, доступ к редактору кода и управление параметрами безопасности.
Способы создания макросов
Есть два основных способа:
-
Запись действий вручную (макрорекордер)
Подходит тем, кто не знаком с программированием. Excel фиксирует все действия пользователя и сохраняет их в виде готового сценария.
- Нажмите Запись макроса.
- Укажите имя и способ запуска (например, сочетание клавиш).
- Выполните нужные действия в таблице.
- Остановите запись.
После этого сценарий можно запускать в любое время — Excel воспроизводит записанные шаги.
- Создание через редактор VBA
Этот способ дает полный контроль. Вкладка Разработчик → Visual Basic открывает среду редактирования, где код можно писать вручную, добавлять условия, циклы, обработку ошибок.
Сравнение подходов
Обычно пользователи начинают с записи макрокоманд, а затем постепенно переходят к написанию собственного кода. Такой путь позволяет понять логику VBA без лишней теории.
Ограничения макросов
Они мощны в рутинных задачах, но не заменяют полноценное программирование. Ограничения касаются как логики выполнения, так и технических возможностей среды VBA.
Функциональные ограничения
VBA поддерживает базовые конструкции — условия, циклы, ветвления, обращение к объектам. Однако по сравнению с современными языками вроде Python или JavaScript возможности скриптов ограничены. Например, макрос не может напрямую взаимодействовать с внешними API без дополнительных библиотек, а обработка больших объемов данных в Excel занимает больше времени. Кроме того, многое зависит от версии Office: сценарий, записанный в одной среде, может не работать в другой из-за несовпадения свойств объектов.
Технические особенности
Запись макроса с помощью рекордера подходит для типовых действий, но не всегда точна. Рекордер фиксирует буквально каждое нажатие и координату ячейки, что делает код «жёстко привязанным» к конкретному файлу. Если структура таблицы изменится, сценарий может работать неправильно. Также присутствует чувствительность к локализации и форматам: различия в разделителях, датах или числах могут вызывать ошибки при запуске на другом компьютере.
Производительность
Макросы эффективны при автоматизации сотен операций, но при работе с большими таблицами производительность может падать. Каждое обращение к ячейке или объекту Excel требует ресурсов, и если таких обращений тысячи, сценарий выполняется заметно медленнее.
Чтобы ускорить выполнение, разработчики оптимизируют код: используют массивы, отключают обновление экрана и пересчёт формул во время выполнения. Тем не менее VBA остаётся средой с ограниченной скоростью исполнения.
![][https://cdn6.hexlet.io/oWnAxopeBXGl.png]
Практическое руководство
Создание автоматизированного сценария в Excel может занять меньше минуты. Важно понять логику — макрос фиксирует каждое действие, а затем выполняет его в том же порядке.
Запись
- На вкладке Разработчик нажмите Запись макроса.
- Укажите имя и при необходимости назначьте сочетание клавиш.
- Выполните серию действий — например, выделите диапазон, примените форматирование, вставьте формулу.
- Завершите запись кнопкой «Остановить».
Теперь сценарий можно запускать: Excel повторит те же шаги автоматически. Это удобно для форматирования отчетов, расчёта итогов или подготовки шаблонов.
Написание кода вручную
Для большей гибкости открывают редактор Visual Basic. Там создают процедуру:
Такой код не просто копирует действия, а добавляет логику — можно вставить условие или сообщение, обработать несколько листов.
Макрокоманды, написанные вручную, работают быстрее и чище, чем записанный рекордером, потому что не содержит лишних шагов.
Запуск сценариев
Выполнить сценарий можно тремя способами:
Если в файле несколько сценариев, Excel позволяет выбрать нужный из списка. Важно помнить, что при переносе документа на другой компьютер макросы сохраняются только в формате .xlsm или .xltm.
Работа с макросами
После создания сценариев важно понимать, как они ведут себя при копировании, сохранении и совместном доступе. Правильная настройка форматов и ссылок позволяет избежать ошибок и потери функциональности.
Абсолютные и относительные ссылки
Когда макрос записывается, Excel может фиксировать действия относительно конкретных ячеек или их положения на листе.
- Абсолютные ссылки означают, что сценарий всегда работает с тем же диапазоном (например, A1).
- Относительные ссылки позволяют применять сценарий к любому месту, где находится курсор, сохраняя логику, но изменяя координаты.
Выбор зависит от задачи: для отчётов лучше использовать абсолютные ссылки, а для форматирования или повседневных операций — относительные.
Форматы файлов
Чтобы макрокоманды сохранялись и запускались, необходимо использовать специальные форматы:
-
.xlsm — стандартный рабочий файл с поддержкой макросов;
-
.xltm — шаблон, содержащий макросы;
-
.xlsx — формат без поддержки сценариев.
Если документ сохранить как .xlsx, код VBA в нём не останется — Excel предупредит об этом перед сохранением. Поэтому при совместной работе важно убедиться, что файл сохранен в правильном формате.
Личная книга макросов
Для универсальных сценариев существует личная книга — специальный файл, который открывается вместе с Excel, но остается скрытым. Макросы из этой книги доступны во всех документах. Это удобно, если пользователь часто выполняет одинаковые операции: например, форматирует таблицы или очищает данные.
![][https://cdn6.hexlet.io/xFKEkcdUe6pW.png]
Совместное использование
Макросы можно передавать коллегам несколькими способами:
При коллективной работе стоит помнить о настройках безопасности: на компьютерах коллег выполнение сценариев может быть заблокировано, если уровень доверия к макросам не настроен.
Безопасность
Автоматизация удобна, но может быть рискованной. Макросы способны выполнять любые действия, включая удаление или изменение данных, поэтому злоумышленники иногда используют их для распространения вирусов. Особенно часто такие сценарии встречаются во вложениях писем или подозрительных файлах из сети. Чтобы защитить пользователей, Microsoft внедрила систему уровней безопасности. При открытии документа Excel проверяет, есть ли в нём макросы, предлагая включить их вручную. Если источник файла неизвестен, сценарии не выполняются.
В настройках Центра управления безопасностью можно выбрать уровень доверия: от полного запрета до разрешения, подписанных цифровым сертификатом. В корпоративной среде обычно используется средний уровень — запуск только проверенных сценариев.
Главное правило простое: включать макросы только в тех файлах, которым вы доверяете. Даже безопасный инструмент может стать уязвимостью, если пренебречь базовыми мерами защиты.
Примеры использования макросов
- Форматирование таблиц. Один сценарий может очистить лишние строки, выровнять данные, применить шрифт и цветовую схему. Это экономит время при подготовке отчетов и презентаций.
- Создание отчетов. Макросы автоматически подставляют даты, формулы, обновляют сводные таблицы и формируют итоговые значения. Часто один код выполняет работу нескольких сотрудников.
- Выгрузка и обработка данных. Сценарий способен импортировать данные из CSV, XML или базы Access, преобразовать их и разложить по нужным листам.
- Интеграция Excel и Outlook. Простая процедура на VBA может сформировать письмо и разослать его по списку адресов, прикрепив актуальный отчет.
- Работа в Word и PowerPoint. Например, создание документов на основе шаблонов, замена данных в тексте, массовое обновление презентации.
Полезные советы для начинающих
Освоить макросы можно даже без опыта программирования — достаточно понимать логику Excel и немного попрактиковаться. Главное — начинать постепенно, переходя от простых действий к написанию коротких процедур.
Как научиться: пошагово
- Начните с макрорекордера — он покажет, как каждое действие превращается в строку кода.
- Откройте редактор VBA и посмотрите, что записалось. Попробуйте изменить один параметр — цвет, диапазон или формат.
- Освойте базовые конструкции: If, For, MsgBox. Даже три-четыре таких команды дают огромный простор для автоматизации.
- Развивайтесь на практике — берите типовые задачи и превращайте их в сценарии.
Рекомендуемые ресурсы
Ошибки новичков
- копирование чужого кода без понимания логики;
- отсутствие комментариев и структуры;
- использование абсолютных ссылок там, где нужны относительные;
- сохранение макросов в формате .xlsx, из-за чего код теряется.
Заключение
Макросы — это не просто вспомогательная функция Excel, а полноценный инструмент повышения эффективности. Они позволяют автоматизировать повторяющиеся процессы, стандартизировать отчёты и сократить количество ошибок. Освоив основы VBA, можно создавать сценарии, которые экономят часы и дни рутинных операций. Даже базовые знания открывают возможности: от форматирования до интеграции разных программ Office.
А для тех, кто работает с данными ежедневно, макрокоманды становятся частью профессиональной компетенции — умением быстро решать задачи, которые другим требуют десятков кликов.
<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 16:43:43 UTC","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false};gon.token="gyyBM6Pvr0YDCLtiWHjtuEmH0F1OgpTsjCcvNl205Yps_UoEUZECJrVLn_pUdx3PiY7990a1ak4xx7ViD7MC5A";gon.locale="ru";gon.language="ru";gon.theme="light";gon.rails_env="production";gon.mobile=false;gon.google={"analytics_key":"UA-1360700-51","optimize_key":"GTM-5QDVFPF"};gon.captcha={"google_v3_site_key":"6LenGbgZAAAAAM7HbrDbn5JlizCSzPcS767c9vaY","yandex_site_key":"ysc1_Vyob5ZPPUdPBsu0ykt8bVFdzsfpoVjQChLGl2b4g19647a89","verification_failed":null};gon.social_signin=false;gon.typoreporter_google_form_id="1FAIpQLSeibfGq-KvWQ2Fyru-zkFFRVTLBuzXAHAoEyN1p49FtDmNoNA";
//]]>
</script>
<meta charset="utf-8">
<title>Макрос — что это? Зачем они нужны, кто использует макросы в работе, ограничения, полезные советы</title>
<meta name="description" content="2 ответа на вопрос, что такое Макрос простыми словами? Глоссарий Хекслета.">
<link rel="canonical" href="https://ru.hexlet.io/qna/glossary/questions/chto-takoe-makros">
<meta property="og:description" content="2 ответа
на вопрос, что такое Макрос простыми словами? Глоссарий Хекслета.">
<meta property="og:title" content="Макрос — что это? Зачем они нужны, кто использует макросы в работе, ограничения, полезные советы">
<meta property="og:url" content="https://ru.hexlet.io/qna/glossary/questions/chto-takoe-makros">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="xdbDZYkNpVePDX_kzPAQwA8ZWEkzqmt6fyNG4RGjxisqBwhSe3MINzlOW3zA_-C3zxB14zudldjCw9y1Q6QhRQ" />
<script src="/vite/assets/inertia-INZxX8jp.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/preload-helper-BJ4cLWpC.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-nkZBEvfU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ahoy-DrlRQ-1D.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/analytics-6pOtQ3OW.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Surface-DL2bpZA-.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/extends-C-EagtpE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/inheritsLoose-BBd-DCVI.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/objectWithoutPropertiesLoose-DRHXDhjp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/index.esm-DAqKOkZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Button-CGPUux8l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/CloseButton-D1euiPao.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Group-BX48WcuU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Loader-BQEY8g6v.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Modal-Cy3HByv7.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/OptionalPortal-1Hza5P2w.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Stack-CtjJzfw4.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Textarea-Ck64llAy.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/DirectionProvider-Dc9zdUke.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/events-DJQOhap0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-reduced-motion-D2owz4wa.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-disclosure-zKtK5W1r.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-hotkeys-Cnc_Rwkb.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/random-id-DOQyszCZ.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/exports-C_MrNx_T.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<link rel="stylesheet" href="/vite/assets/application-BqhCP46M.js" />
<script src="/vite/assets/application-Df9RExpe.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/autocomplete-VMNbxKGl.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/createPopper-C3aM9r1M.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/js.cookie-D1-O8zkX.js" as="script" crossorigin="anonymous"><link rel="stylesheet" href="/vite/assets/application-C8HjmMaq.css" media="screen" />
<script>
window.ym = function(){(ym.a=ym.a||[]).push(arguments)};
window.addEventListener('load', function() {
setTimeout(function() {
ym.l = 1*new Date();
ym(window.gon.ym_counter, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
// Загружаем скрипт
var k = document.createElement('script');
k.async = 1;
k.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(k);
ym(window.gon.ym_counter, 'getClientID', function(clientID) {
window.ymClientId = clientID;
});
}, 1500);
});
</script>
<!-- Google Tag Manager - deferred -->
<script>
// dataLayer stub сразу — пуши работают до загрузки скрипта
window.dataLayer = window.dataLayer || [];
// Сам скрипт — отложенно после load
window.addEventListener('load', function() {
setTimeout(function() {
dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var j = document.createElement('script');
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WK88TH';
document.head.appendChild(j);
}, 1500);
});
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<noscript>
<div>
<img alt="" src="https://mc.yandex.ru/watch/25559621" style="position:absolute; left:-9999px;">
</div>
</noscript>
<header class="sticky-top bg-body">
<nav class="navbar navbar-expand-lg">
<div class="container-xxl">
<a class="navbar-brand" href="/"><img alt="Логотип Хекслета" height="24" src="https://ru.hexlet.io/vite/assets/logo_ru_light-BpiEA1LT.svg" width="96">
</a><button aria-controls="collapsable" aria-expanded="false" aria-label="Меню" class="navbar-toggler border-0 mb-0 mt-1" data-bs-target="#collapsable" data-bs-toggle="collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsable">
<ul class="navbar-nav mb-lg-0 mt-lg-1">
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
Все курсы
<span class="bi bi-chevron-down align-middle ms-1"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item d-flex py-2" href="/courses"><div class="fw-bold me-auto">Все что есть</div>
<div class="text-muted">117</div>
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные категории</b>
</li>
<li>
<a class="dropdown-item py-2" href="/courses_devops">Курсы по DevOps
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_data_analytics">Курсы по аналитике данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_programming">Курсы по программированию
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_testing">Курсы по тестированию
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные курсы</b>
</li>
<li>
<a class="dropdown-item py-2" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/go">Go-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/java">Java-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/python">Python-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/qa-auto-engineer-java">Автоматизатор тестирования на Java
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/data-analytics">Аналитик данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/frontend">Фронтенд-разработчик
</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
О Хекслете
<span class="bi bi-chevron-down align-middle"></span>
</button>
<ul class="dropdown-menu bg-body">
<li>
<a class="dropdown-item py-2" href="/pages/about">О нас
</a></li>
<li>
<a class="dropdown-item py-2" href="/blog">Блог
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/hse-research" role="button">Результаты (Исследование)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://career.hexlet.io" role="button">Хекслет Карьера
</span></li>
<li>
<a class="dropdown-item py-2" href="/testimonials">Отзывы студентов
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://t.me/hexlet_help_bot" role="button">Поддержка (В ТГ)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/referal-program/?promo_creative=priglasite-druzei&promo_name=referal-program&promo_position=promo_position&promo_start=010724&promo_type=link" role="button">Реферальная программа
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/certificate" role="button">Подарочные сертификаты
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://hh.ru/employer/4307094" role="button">Вакансии
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://b2b.hexlet.io" data-target="_blank" role="button">Компаниям
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexly.ru/" data-target="_blank" role="button">Колледж
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexlyschool.ru/" data-target="_blank" role="button">Частная школа
</span></li>
</ul>
</li>
<li><a class="nav-link" href="/subscription/new">Подписка</a></li>
</ul>
<ul class="navbar-nav flex-lg-row align-items-lg-center gap-2 ms-auto">
<li>
<a class="nav-link" aria-label="Переключить тему" href="/theme/switch?new_theme=dark"><span aria-hidden="true" class="bi bi-moon"></span>
</a></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="/u/new" role="button"><span>Регистрация</span>
</span></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="https://ru.hexlet.io/session/new" role="button"><span>Вход</span>
</span></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="x-container-xxxl">
</div>
<main class="mb-6 min-vh-100 h-100">
<link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk3MSwicHVyIjoiYmxvYl9pZCJ9fQ==--126b25f39a57b0fdbd31895236a8d1da05b80ac4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Server-amico.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY0NSwicHVyIjoiYmxvYl9pZCJ9fQ==--f34b449529f04fd8689092f66f9653c47c7e1f58/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Server%20status-amico.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk3NywicHVyIjoiYmxvYl9pZCJ9fQ==--bc5ef27286509b0ecf2f8ae6cbdce2376db3d394/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/500%20Internal%20Server%20Error-cuate.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkzMiwicHVyIjoiYmxvYl9pZCJ9fQ==--7e1956d5683226b3f32f57abb931d34a6639970b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/QA%20engineers-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkzNSwicHVyIjoiYmxvYl9pZCJ9fQ==--06c469e64c9b6c8429a6a01edd20041dae30ce13/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Software%20code%20testing-bro.png"/><link rel="preload" as="image" href="/vite/assets/development-BVihs_d5.png"/><div id="app" data-page="{"component":"web/qna/questions/show","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T16:43:43.892Z","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false}},"cloudflareTurnstileSiteKey":"0x4AAAAAAA15KmeFXzd2H0Xo","vkIdClientId":"51586979","yandexIdClientId":"88d071f1d3384eb4bd1deb37910235c7","formAuthToken":"83NX0WOO0Bnu8_Q8M6E0md3LdZ6iajx6KCKRxXD22t0copzmkfB9eViw0KQ_rsTuHcJYNKpdwtiVwguRIvE9sw","category":{"id":15,"title":"Глоссарий","slug":"glossary","questions_count":382,"locale":"ru"},"mainStackCategory":{"id":7,"name":"Курсы по DevOps","slug":"devops","short_name":"DevOps","order":4,"state":"published","category_slug":"courses_devops"},"answerDto":{"id":null,"body":"","meta":{"model":"question_answer","relations":{}}},"question":{"creator":{"id":104929,"email":"feycot@gmail.com","first_name":"Nikolai","last_name":"Gagarinov","telegram":"","full_name":"Nikolai Gagarinov","removed":false},"category":{"id":15,"title":"Глоссарий","slug":"glossary","questions_count":382,"locale":"ru"},"tags":[],"id":3832,"answers_count":2,"slug":"chto-takoe-makros","state":"published","title":"Макрос","created_at":"2023-06-05T10:02:26.763Z","details":null,"best_answer_id":3063,"related_stacks_count":5},"answers":[{"user":{"id":104929,"email":"feycot@gmail.com","first_name":"Nikolai","last_name":"Gagarinov","telegram":"","full_name":"Nikolai Gagarinov","removed":false},"question":{"creator":{"id":104929,"email":"feycot@gmail.com","first_name":"Nikolai","last_name":"Gagarinov","telegram":"","full_name":"Nikolai Gagarinov","removed":false},"category":{"id":15,"title":"Глоссарий","slug":"glossary","questions_count":382,"locale":"ru"},"tags":[],"id":3832,"answers_count":2,"slug":"chto-takoe-makros","state":"published","title":"Макрос","created_at":"2023-06-05T10:02:26.763Z","details":null,"best_answer_id":3063,"related_stacks_count":5},"id":5155,"state":"active","body":"Макрос — это инструмент автоматизации, позволяющий выполнять повторяющиеся действия в программах Microsoft Office с помощью заранее записанных команд. Он помогает заменить рутину — клики, вставки, форматирование, фильтры — на один сценарий, запускаемый по кнопке или сочетанию клавиш.\n\n\n\nИдея автоматизации рутинных операций появилась ещё в 1980-х годах, когда офисные приложения начали превращаться из простых редакторов в мощные рабочие инструменты. В Excel функция записи действий появилась одной из первых. Позже ее подхватили другие продукты Microsoft Office: Word, Outlook, PowerPoint, Access. Сегодня макросы (макрокоманды) превратились в полноценные мини-программы, которые умеют формировать отчёты, объединять данные из разных файлов, взаимодействовать с базами, управлять внешними приложениями. Всё это реализуется с помощью встроенного языка VBA (Visual Basic for Applications), который позволяет описывать любую последовательность действий в виде кода.\n\n## Зачем нужны макросы\n\nИх главная цель — освободить человека от однообразных действий. Вместо того, чтобы вручную вводить формулы, копировать строки или выравнивать ячейки, можно один раз записать сценарий, который сделает всё автоматически. Это позволяет сосредоточиться на анализе, принятии решений, а не на механической работе.\n\n### Автоматизация рутинных операций\n\nВ любом офисном процессе есть повторяющиеся действия: создание отчетов, обработка данных, форматирование таблиц, сортировка и фильтрация. Макрокоманды позволяют превратить такие действия в шаблоны.\n\n### Снижение количества ошибок\n\nРучная работа всегда связана с риском — особенно при работе с большими таблицами. Макросы исключают человеческий фактор: формулы вставляются точно, данные не теряются, расчеты выполняются одинаково при каждом запуске.\n\n### Ускорение работы с данными\n\nАвтоматизация действий экономит минуты, которые накапливаются в часы и дни. В крупных организациях макросы сокращают время подготовки отчётов и документов в несколько раз. Вместо 20 шагов — один.\n\n## Применение в реальных сценариях\n\nНа практике макросы применяются в десятках задач:\n\n* в Excel — формирование финансовых отчетов, консолидация данных из разных источников, подготовка графиков и сводных таблиц;\n* в Word — автоматическое оформление договоров и актов;\n* в Outlook — рассылка писем по шаблону;\n* в PowerPoint — массовое обновление слайдов или шаблонов;\n* в Access — создание интерактивных форм и отчетов.\n\n## Кто использует макросы в работе\n\nЭто инструмент не только для программистов, а для всех, кто работает с данными и повторяющимися процессами.\n\n### Бухгалтеры, экономисты\n\nДля финансовых специалистов автоматизация стала необходимостью. Макросы в Excel упрощают заполнение отчётных форм, проверку балансов, расчет налогов, консолидирование данных из разных источников. Их часто используют для моделирования прогнозов: код на VBA помогает быстро пересчитать десятки сценариев при изменении исходных параметров.\n\n### Аналитики, маркетологи\n\nВ аналитике автоматизацияа позволяет собирать данные из CRM, выгрузок, опросов, сайтов, объединять их и визуализировать в одном файле. В маркетинге — помогает готовить отчеты по продажам и рекламным кампаниям:формирует диаграммы, выделяет ключевые показатели, рассылает результаты команде.\n\n### IT-специалисты, администраторы\n\nС помощью макрокоманд администраторы ведут учёт оборудования, проверяют настройки рабочих станций, анализируют логи и даже управляют почтовыми рассылками через Outlook. В некоторых компаниях макросы служат мостом между Excel и внутренними системами учёта: таблица может автоматически отправлять запросы, получать результаты и обновлять данные.\n\n### Универсальный инструмент для всех\n\nГлавное преимущество макросов — в том, что их можно адаптировать под любую задачу. Не важно, идёт ли речь о простом форматировании таблицы или о построении сложных аналитических моделей — сценарий можно создать без глубоких знаний программирования.\n\n\n\n## Устройство макросов\n\nПо своей сути это — это последовательность команд, которую выполняет программа в заданном порядке. Каждая команда соответствует действию пользователя: выделить ячейку, скопировать данные, применить форматирование, вставить формулу и т. д. Вся эта последовательность записывается либо вручную, либо через встроенный инструмент — *макрорекордер*. После записи ее можно воспроизводить в любое время.\n\n### Макрос как последовательность команд\n\nКогда пользователь записывает действия, Excel сохраняет каждое из них как инструкцию. Например:\n\n1. выделить диапазон;\n2. изменить шрифт;\n3. вставить сумму в соседнюю ячейку.\n\nПосле сохранения макрос воспроизводит эти действия в том же порядке, но за доли секунды. В простейшем виде это сценарий автоматизации без необходимости программировать. Однако, если добавить к нему код, возможности значительно расширяются.\n\n### VBA — язык для управления\n\nВ основе макросов лежит язык VBA (Visual Basic for Applications). Это упрощённая версия Visual Basic, встроенная в приложения Microsoft Office. Она позволяет обращаться к любым объектам программы — листам, таблицам, ячейкам, слайдам или письмам — и управлять ими. Например, можно задать, чтобы сценарий выполнялся только при определённом условии или применялся к разным диапазонам данных.\n\n### Структура простого кода VBA\n\nКод строится по определённым правилам. \n Простейший пример:\n\n```text\nSub Форматирование()\n Range(\"A1:B10\").Select\tSelection.Font.Bold = True\n Selection.Interior.Color = RGB(240, 240, 240)\nEnd Sub\n```\n\n`Sub` (сокращение от *Subroutine*) задаёт начало процедуры, а `End Sub` — конец. Всё, что находится между ними, и есть набор команд. Каждая строка — отдельное действие: выбор диапазона, изменение параметра шрифта, заливка цветом.\n\nПри запуске Excel интерпретирует код построчно, выполняя все указанные инструкции, как детально прописанный алгоритм, который можно редактировать, улучшать и повторно использовать.\n\n## Как создавать макросы в Excel\n\nПрежде чем начать работу с автоматизацией, нужно подготовить Excel. По умолчанию средства разработки скрыты, поэтому сначала нужно включить специальную вкладку.\n\n### Подготовка Excel\n\nЧтобы открыть доступ к инструментам записи и редактирования:\n\n1. Перейдите в меню Файл → Параметры → Настроить ленту.\n2. В списке справа отметьте пункт Разработчик (Developer) и нажмите ОК.\n\nПосле этого на панели появится новая вкладка. Именно здесь находятся все инструменты, связанные с VBA и макросами: кнопка записи, доступ к редактору кода и управление параметрами безопасности.\n\n### Способы создания макросов\n\nЕсть два основных способа:\n\n1. Запись действий вручную (макрорекордер) \n Подходит тем, кто не знаком с программированием. Excel фиксирует все действия пользователя и сохраняет их в виде готового сценария.\n\n * Нажмите Запись макроса.\n * Укажите имя и способ запуска (например, сочетание клавиш).\n * Выполните нужные действия в таблице.\n * Остановите запись.\n\nПосле этого сценарий можно запускать в любое время — Excel воспроизводит записанные шаги.\n\n2. Создание через редактор VBA \n Этот способ дает полный контроль. Вкладка Разработчик → Visual Basic открывает среду редактирования, где код можно писать вручную, добавлять условия, циклы, обработку ошибок.\n\n### Сравнение подходов\n\n| Критерий | Запись действий | Редактор VBA |\n|:---------------------------|:------------------------------|:-----------------------------------------|\n| Простота освоения | Очень высокая | Требует базовых знаний кода |\n| Гибкость | Только повтор действий | Полный контроль над логикой |\n| Производительность | Подходит для простых операций | Эффективен при работе с большими данными |\n| Возможность редактирования | Ограничена | Безгранична |\n\nОбычно пользователи начинают с записи макрокоманд, а затем постепенно переходят к написанию собственного кода. Такой путь позволяет понять логику VBA без лишней теории.\n\n## Ограничения макросов\n\nОни мощны в рутинных задачах, но не заменяют полноценное программирование. Ограничения касаются как логики выполнения, так и технических возможностей среды VBA.\n\n### Функциональные ограничения\n\nVBA поддерживает базовые конструкции — условия, циклы, ветвления, обращение к объектам. Однако по сравнению с современными языками вроде Python или JavaScript возможности скриптов ограничены. Например, макрос не может напрямую взаимодействовать с внешними API без дополнительных библиотек, а обработка больших объемов данных в Excel занимает больше времени. Кроме того, многое зависит от версии Office: сценарий, записанный в одной среде, может не работать в другой из-за несовпадения свойств объектов.\n\n### Технические особенности\n\nЗапись макроса с помощью рекордера подходит для типовых действий, но не всегда точна. Рекордер фиксирует буквально каждое нажатие и координату ячейки, что делает код «жёстко привязанным» к конкретному файлу. Если структура таблицы изменится, сценарий может работать неправильно. Также присутствует чувствительность к локализации и форматам: различия в разделителях, датах или числах могут вызывать ошибки при запуске на другом компьютере.\n\n### Производительность\n\nМакросы эффективны при автоматизации сотен операций, но при работе с большими таблицами производительность может падать. Каждое обращение к ячейке или объекту Excel требует ресурсов, и если таких обращений тысячи, сценарий выполняется заметно медленнее. \n Чтобы ускорить выполнение, разработчики оптимизируют код: используют массивы, отключают обновление экрана и пересчёт формул во время выполнения. Тем не менее VBA остаётся средой с ограниченной скоростью исполнения.\n\n![][https://cdn6.hexlet.io/oWnAxopeBXGl.png]\n\n## Практическое руководство\n\nСоздание автоматизированного сценария в Excel может занять меньше минуты. Важно понять логику — макрос фиксирует каждое действие, а затем выполняет его в том же порядке.\n\n### Запись\n\n1. На вкладке Разработчик нажмите Запись макроса.\n2. Укажите имя и при необходимости назначьте сочетание клавиш.\n3. Выполните серию действий — например, выделите диапазон, примените форматирование, вставьте формулу.\n4. Завершите запись кнопкой «Остановить».\n\nТеперь сценарий можно запускать: Excel повторит те же шаги автоматически. Это удобно для форматирования отчетов, расчёта итогов или подготовки шаблонов.\n\n### Написание кода вручную\n\nДля большей гибкости открывают редактор Visual Basic. Там создают процедуру:\n\n```text\nSub Отчет()\n Range(\"A1:D1\").Font.Bold = True\n Range(\"A1:D1\").Interior.Color = RGB(200, 230, 255)\n MsgBox \"Оформление завершено\"\nEnd Sub\n```\n\nТакой код не просто копирует действия, а добавляет логику — можно вставить условие или сообщение, обработать несколько листов. \nМакрокоманды, написанные вручную, работают быстрее и чище, чем записанный рекордером, потому что не содержит лишних шагов.\n\n### Запуск сценариев\n\nВыполнить сценарий можно тремя способами:\n\n* через вкладку Разработчик → Макросы;\n\n* нажатием горячих клавиш;\n\n* привязкой к кнопке или объекту на листе.\n\nЕсли в файле несколько сценариев, Excel позволяет выбрать нужный из списка. Важно помнить, что при переносе документа на другой компьютер макросы сохраняются только в формате **.xlsm** или **.xltm**.\n\n## Работа с макросами\n\nПосле создания сценариев важно понимать, как они ведут себя при копировании, сохранении и совместном доступе. Правильная настройка форматов и ссылок позволяет избежать ошибок и потери функциональности.\n\n### Абсолютные и относительные ссылки\n\nКогда макрос записывается, Excel может фиксировать действия относительно конкретных ячеек или их положения на листе.\n\n* Абсолютные ссылки означают, что сценарий всегда работает с тем же диапазоном (например, A1:B10).\n* Относительные ссылки позволяют применять сценарий к любому месту, где находится курсор, сохраняя логику, но изменяя координаты.\n\nВыбор зависит от задачи: для отчётов лучше использовать абсолютные ссылки, а для форматирования или повседневных операций — относительные.\n\n### Форматы файлов\n\nЧтобы макрокоманды сохранялись и запускались, необходимо использовать специальные форматы:\n\n* _.xlsm_ — стандартный рабочий файл с поддержкой макросов;\n* _.xltm_ — шаблон, содержащий макросы;\n* _.xlsx_ — формат без поддержки сценариев.\n\nЕсли документ сохранить как .xlsx, код VBA в нём не останется — Excel предупредит об этом перед сохранением. Поэтому при совместной работе важно убедиться, что файл сохранен в правильном формате.\n\n### Личная книга макросов\n\nДля универсальных сценариев существует *личная книга* — специальный файл, который открывается вместе с Excel, но остается скрытым. Макросы из этой книги доступны во всех документах. Это удобно, если пользователь часто выполняет одинаковые операции: например, форматирует таблицы или очищает данные.\n\n![][https://cdn6.hexlet.io/xFKEkcdUe6pW.png]\n\n### Совместное использование\n\nМакросы можно передавать коллегам несколькими способами:\n\n* через общий файл .xlsm;\n\n* экспортом модулей VBA в отдельные файлы;\n\n* публикацией шаблона .xltm в корпоративной библиотеке.\n\nПри коллективной работе стоит помнить о настройках безопасности: на компьютерах коллег выполнение сценариев может быть заблокировано, если уровень доверия к макросам не настроен.\n\n### Безопасность\n\nАвтоматизация удобна, но может быть рискованной. Макросы способны выполнять любые действия, включая удаление или изменение данных, поэтому злоумышленники иногда используют их для распространения вирусов. Особенно часто такие сценарии встречаются во вложениях писем или подозрительных файлах из сети. Чтобы защитить пользователей, Microsoft внедрила систему уровней безопасности. При открытии документа Excel проверяет, есть ли в нём макросы, предлагая включить их вручную. Если источник файла неизвестен, сценарии не выполняются.\n\nВ настройках Центра управления безопасностью можно выбрать уровень доверия: от полного запрета до разрешения, подписанных цифровым сертификатом. В корпоративной среде обычно используется средний уровень — запуск только проверенных сценариев.\n\nГлавное правило простое: включать макросы только в тех файлах, которым вы доверяете. Даже безопасный инструмент может стать уязвимостью, если пренебречь базовыми мерами защиты.\n\n## Примеры использования макросов\n\n* Форматирование таблиц. Один сценарий может очистить лишние строки, выровнять данные, применить шрифт и цветовую схему. Это экономит время при подготовке отчетов и презентаций.\n* Создание отчетов. Макросы автоматически подставляют даты, формулы, обновляют сводные таблицы и формируют итоговые значения. Часто один код выполняет работу нескольких сотрудников.\n* Выгрузка и обработка данных. Сценарий способен импортировать данные из CSV, XML или базы Access, преобразовать их и разложить по нужным листам.\n* Интеграция Excel и Outlook. Простая процедура на VBA может сформировать письмо и разослать его по списку адресов, прикрепив актуальный отчет.\n* Работа в Word и PowerPoint. Например, создание документов на основе шаблонов, замена данных в тексте, массовое обновление презентации.\n\n## Полезные советы для начинающих\n\nОсвоить макросы можно даже без опыта программирования — достаточно понимать логику Excel и немного попрактиковаться. Главное — начинать постепенно, переходя от простых действий к написанию коротких процедур.\n\n### Как научиться: пошагово\n\n1. Начните с макрорекордера — он покажет, как каждое действие превращается в строку кода.\n2. Откройте редактор VBA и посмотрите, что записалось. Попробуйте изменить один параметр — цвет, диапазон или формат.\n3. Освойте базовые конструкции: `If`, `For`, `MsgBox`. Даже три-четыре таких команды дают огромный простор для автоматизации.\n4. Развивайтесь на практике — берите типовые задачи и превращайте их в сценарии.\n\n### Рекомендуемые ресурсы\n\n* курсы [https://ru.hexlet.io/courses](https://ru.hexlet.io/courses); \n* книга «Excel VBA Programming For Dummies»;\n* тематические форумы и блоги.\n\n### Ошибки новичков\n\n* копирование чужого кода без понимания логики;\n* отсутствие комментариев и структуры;\n* использование абсолютных ссылок там, где нужны относительные;\n* сохранение макросов в формате .xlsx, из-за чего код теряется.\n\n## Заключение\n\nМакросы — это не просто вспомогательная функция Excel, а полноценный инструмент повышения эффективности. Они позволяют автоматизировать повторяющиеся процессы, стандартизировать отчёты и сократить количество ошибок. Освоив основы VBA, можно создавать сценарии, которые экономят часы и дни рутинных операций. Даже базовые знания открывают возможности: от форматирования до интеграции разных программ Office.\n\nА для тех, кто работает с данными ежедневно, макрокоманды становятся частью профессиональной компетенции — умением быстро решать задачи, которые другим требуют десятков кликов.\n","votes_up_count":0,"votes_down_count":0,"created_at":"2025-11-18T13:58:31.992Z","user_id":104929,"category_slug":"glossary"},{"user":{"id":647057,"email":"redkinaelena10.02.89@yandex.ru","first_name":"Елена","last_name":"Редькина","telegram":"89670235676","full_name":"Елена Редькина","removed":false},"question":{"creator":{"id":104929,"email":"feycot@gmail.com","first_name":"Nikolai","last_name":"Gagarinov","telegram":"","full_name":"Nikolai Gagarinov","removed":false},"category":{"id":15,"title":"Глоссарий","slug":"glossary","questions_count":382,"locale":"ru"},"tags":[],"id":3832,"answers_count":2,"slug":"chto-takoe-makros","state":"published","title":"Макрос","created_at":"2023-06-05T10:02:26.763Z","details":null,"best_answer_id":3063,"related_stacks_count":5},"id":3063,"state":"active","body":"Макрос - это последовательность команд или операций, которые выполняются автоматически. В программировании макросы используются для упрощения написания кода и уменьшения количества повторяющихся фрагментов. Макросы могут быть определены на разных уровнях абстракции, от простых однострочных операций до сложных процедур, состоящих из десятков или сотен строк кода.","votes_up_count":0,"votes_down_count":0,"created_at":"2023-11-16T13:10:22.489Z","user_id":647057,"category_slug":"glossary"}],"relatedQuestions":[{"creator":{"id":583099,"email":"shade.mailbox@gmail.com","first_name":"Arthur","last_name":"Cheremisin","telegram":"","full_name":"Arthur Cheremisin","removed":false},"category":{"id":15,"title":"Глоссарий","slug":"glossary","questions_count":382,"locale":"ru"},"tags":[{"id":1095,"slug":"data-analitika","name":"data-аналитика"},{"id":1096,"slug":"analitika","name":"Аналитика"}],"id":2709,"answers_count":2,"slug":"chto-takoe-pandas","state":"published","title":"Pandas","created_at":"2023-03-29T12:39:32.428Z","details":"","best_answer_id":5306,"related_stacks_count":5},{"creator":{"id":104929,"email":"feycot@gmail.com","first_name":"Nikolai","last_name":"Gagarinov","telegram":"","full_name":"Nikolai Gagarinov","removed":false},"category":{"id":15,"title":"Глоссарий","slug":"glossary","questions_count":382,"locale":"ru"},"tags":[],"id":3577,"answers_count":1,"slug":"chto-takoe-1c-buhgalteriya","state":"published","title":"1C:Бухгалтерия","created_at":"2023-06-05T10:02:18.923Z","details":null,"best_answer_id":3315,"related_stacks_count":0},{"creator":{"id":104929,"email":"feycot@gmail.com","first_name":"Nikolai","last_name":"Gagarinov","telegram":"","full_name":"Nikolai Gagarinov","removed":false},"category":{"id":15,"title":"Глоссарий","slug":"glossary","questions_count":382,"locale":"ru"},"tags":[],"id":3578,"answers_count":1,"slug":"chto-takoe-1c-predpriyatie","state":"published","title":"1C:Предприятие","created_at":"2023-06-05T10:02:18.960Z","details":null,"best_answer_id":3314,"related_stacks_count":5},{"creator":{"id":104929,"email":"feycot@gmail.com","first_name":"Nikolai","last_name":"Gagarinov","telegram":"","full_name":"Nikolai Gagarinov","removed":false},"category":{"id":15,"title":"Глоссарий","slug":"glossary","questions_count":382,"locale":"ru"},"tags":[],"id":3579,"answers_count":1,"slug":"chto-takoe-a-b-testirovanie","state":"published","title":"A/B-тестирование","created_at":"2023-06-05T10:02:18.988Z","details":null,"best_answer_id":3313,"related_stacks_count":5},{"creator":{"id":104929,"email":"feycot@gmail.com","first_name":"Nikolai","last_name":"Gagarinov","telegram":"","full_name":"Nikolai Gagarinov","removed":false},"category":{"id":15,"title":"Глоссарий","slug":"glossary","questions_count":382,"locale":"ru"},"tags":[],"id":3580,"answers_count":1,"slug":"chto-takoe-agile","state":"published","title":"Agile","created_at":"2023-06-05T10:02:19.016Z","details":null,"best_answer_id":3312,"related_stacks_count":5}],"relatedLandings":[{"stack":{"id":46,"slug":"local-environment-automation","title":"Автоматизация локального окружения","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1800,"duration_in_months":1},"id":80,"slug":"local-environment-automation","title":"Автоматизация локального окружения","subtitle":"Навык настраивать локальное окружение с помощью специализированных инструментов для удобной и эффективной разработки","subtitle_for_lists":"Освоите настройку окружения с dev-инструментами","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"local-environment-automation","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk3MSwicHVyIjoiYmxvYl9pZCJ9fQ==--126b25f39a57b0fdbd31895236a8d1da05b80ac4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Server-amico.png"},{"stack":{"id":44,"slug":"ansible-deploy","title":"Автоматизация деплоя","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1950,"duration_in_months":1},"id":76,"slug":"ansible-deploy","title":"Автоматизация деплоя","subtitle":"Навык автоматизации деплоя приложений, сокращающий время развертывания и снижающий количество ошибок в продакшене","subtitle_for_lists":"Изучите CI/CD и автоматизацию развёртывания","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"ansible-deploy","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY0NSwicHVyIjoiYmxvYl9pZCJ9fQ==--f34b449529f04fd8689092f66f9653c47c7e1f58/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Server%20status-amico.png"},{"stack":{"id":45,"slug":"infrastructure-automation","title":"Автоматизация IT-инфраструктуры","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1850,"duration_in_months":1},"id":78,"slug":"infrastructure-automation","title":"Автоматизация инфраструктуры","subtitle":"Навык, позволяющий автоматизировать развертывание и управление серверной инфраструктурой с Terraform","subtitle_for_lists":"Навык управления инфраструктурой с Terraform","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"infrastructure-automation","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk3NywicHVyIjoiYmxvYl9pZCJ9fQ==--bc5ef27286509b0ecf2f8ae6cbdce2376db3d394/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/500%20Internal%20Server%20Error-cuate.png"},{"stack":{"id":31,"slug":"frontend-testing-react","title":"Автоматизация тестирования фронтенда","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1600,"duration_in_months":2},"id":50,"slug":"frontend-testing-react","title":"Автоматизация тестирования фронтенда","subtitle":"Навык автоматизированного тестирования JavaScript в браузере, открывающий доступ к новым карьерным возможностям","subtitle_for_lists":"Освоите автотесты на JavaScript для браузерных приложений","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"frontend-testing-react","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkzMiwicHVyIjoiYmxvYl9pZCJ9fQ==--7e1956d5683226b3f32f57abb931d34a6639970b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/QA%20engineers-rafiki.png"},{"stack":{"id":39,"slug":"php-phpunit-testing","title":"Автоматизация тестирования на PHP","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1900,"duration_in_months":4},"id":66,"slug":"php-phpunit-testing","title":"Автоматизация тестирования на PHP","subtitle":"Навык написания тестов и применения продвинутых подходов, повышающий качество кода","subtitle_for_lists":"Навык тестирования на PHP","locale":"ru","current":true,"duration_in_months_text":"4 месяца","stack_slug":"php-phpunit-testing","price_text":"от 3 900 ₽","duration_text":"4 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkzNSwicHVyIjoiYmxvYl9pZCJ9fQ==--06c469e64c9b6c8429a6a01edd20041dae30ce13/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Software%20code%20testing-bro.png"}]},"url":"/qna/glossary/questions/chto-takoe-makros","version":"0b0c6d4ebbd40fd58630a0dd89cc25544ccdf24e","encryptHistory":false,"clearHistory":false}"><style data-mantine-styles="true">:root, :host{--mantine-font-family: Arial, sans-serif;--mantine-font-family-headings: Arial, sans-serif;--mantine-heading-font-weight: normal;--mantine-radius-default: 0rem;--mantine-primary-color-filled: var(--mantine-color-indigo-filled);--mantine-primary-color-filled-hover: var(--mantine-color-indigo-filled-hover);--mantine-primary-color-light: var(--mantine-color-indigo-light);--mantine-primary-color-light-hover: var(--mantine-color-indigo-light-hover);--mantine-primary-color-light-color: var(--mantine-color-indigo-light-color);--mantine-spacing-xxl: calc(4rem * var(--mantine-scale));--mantine-font-size-xs: 12px;--mantine-font-size-sm: 14px;--mantine-font-size-md: 16px;--mantine-font-size-lg: clamp(16.0000px, calc(15.2727px + 0.2273vw), 18.0000px);--mantine-font-size-xl: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-display-3: clamp(32.0000px, calc(26.1818px + 1.8182vw), 48.0000px);--mantine-font-size-display-2: clamp(36.0000px, calc(25.8182px + 3.1818vw), 64.0000px);--mantine-font-size-display-1: clamp(40.0000px, calc(25.4545px + 4.5455vw), 80.0000px);--mantine-font-size-h1: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-font-size-h2: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-font-size-h3: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-font-size-h4: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-font-size-h5: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-h6: 1rem;--mantine-primary-color-0: var(--mantine-color-indigo-0);--mantine-primary-color-1: var(--mantine-color-indigo-1);--mantine-primary-color-2: var(--mantine-color-indigo-2);--mantine-primary-color-3: var(--mantine-color-indigo-3);--mantine-primary-color-4: var(--mantine-color-indigo-4);--mantine-primary-color-5: var(--mantine-color-indigo-5);--mantine-primary-color-6: var(--mantine-color-indigo-6);--mantine-primary-color-7: var(--mantine-color-indigo-7);--mantine-primary-color-8: var(--mantine-color-indigo-8);--mantine-primary-color-9: var(--mantine-color-indigo-9);--mantine-color-red-0: #ffeaea;--mantine-color-red-1: #fed4d4;--mantine-color-red-2: #f4a7a8;--mantine-color-red-3: #ec7878;--mantine-color-red-4: #e55050;--mantine-color-red-5: #e03131;--mantine-color-red-6: #e02829;--mantine-color-red-7: #c71a1c;--mantine-color-red-8: #b21218;--mantine-color-red-9: #9c0411;--mantine-color-violet-0: #fce9ff;--mantine-color-violet-1: #f1cfff;--mantine-color-violet-2: #e09bff;--mantine-color-violet-3: #d16fff;--mantine-color-violet-4: #be37fe;--mantine-color-violet-5: #b51afe;--mantine-color-violet-6: #b009ff;--mantine-color-violet-7: #9b00e4;--mantine-color-violet-8: #8a00cc;--mantine-color-violet-9: #7800b3;--mantine-color-indigo-0: #edecff;--mantine-color-indigo-1: #d6d5fe;--mantine-color-indigo-2: #aaa9f4;--mantine-color-indigo-3: #7b79eb;--mantine-color-indigo-4: #5451e4;--mantine-color-indigo-5: #3b37e0;--mantine-color-indigo-6: #2d2adf;--mantine-color-indigo-7: #1f1ec7;--mantine-color-indigo-8: #1819b2;--mantine-color-indigo-9: #0c149e;--mantine-color-cyan-0: #dffdff;--mantine-color-cyan-1: #caf5ff;--mantine-color-cyan-2: #99e8ff;--mantine-color-cyan-3: #64daff;--mantine-color-cyan-4: #3ccffe;--mantine-color-cyan-5: #24c8fe;--mantine-color-cyan-6: #00c2ff;--mantine-color-cyan-7: #00ade4;--mantine-color-cyan-8: #009acd;--mantine-color-cyan-9: #0085b5;--mantine-color-green-0: #e9fdec;--mantine-color-green-1: #d7f6dc;--mantine-color-green-2: #b0eab9;--mantine-color-green-3: #86df94;--mantine-color-green-4: #62d574;--mantine-color-green-5: #4ccf5f;--mantine-color-green-6: #3fcc54;--mantine-color-green-7: #2fb344;--mantine-color-green-8: #25a03b;--mantine-color-green-9: #138a2e;--mantine-color-yellow-0: #fff7e2;--mantine-color-yellow-1: #ffeecd;--mantine-color-yellow-2: #ffdc9c;--mantine-color-yellow-3: #ffc966;--mantine-color-yellow-4: #feb93a;--mantine-color-yellow-5: #feae1e;--mantine-color-yellow-6: #ffa90f;--mantine-color-yellow-8: #ca8200;--mantine-color-yellow-9: #af7000;--mantine-h1-font-size: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-h1-font-weight: normal;--mantine-h2-font-size: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-h2-font-weight: normal;--mantine-h3-font-size: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-h3-font-weight: normal;--mantine-h4-font-size: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-h4-font-weight: normal;--mantine-h5-font-size: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-h5-font-weight: normal;--mantine-h6-font-size: 1rem;--mantine-h6-font-weight: normal;}
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-dark-filled: var(--mantine-color-dark-5);--mantine-color-dark-filled-hover: var(--mantine-color-dark-6);--mantine-color-dark-light: rgba(105, 105, 105, 0.15);--mantine-color-dark-light-hover: rgba(105, 105, 105, 0.2);--mantine-color-dark-light-color: var(--mantine-color-dark-0);--mantine-color-dark-outline: var(--mantine-color-dark-1);--mantine-color-dark-outline-hover: rgba(184, 184, 184, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-5);--mantine-color-gray-filled-hover: var(--mantine-color-gray-6);--mantine-color-gray-light: rgba(222, 226, 230, 0.15);--mantine-color-gray-light-hover: rgba(222, 226, 230, 0.2);--mantine-color-gray-light-color: var(--mantine-color-gray-0);--mantine-color-gray-outline: var(--mantine-color-gray-1);--mantine-color-gray-outline-hover: rgba(241, 243, 245, 0.05);--mantine-color-red-filled: var(--mantine-color-red-5);--mantine-color-red-filled-hover: var(--mantine-color-red-6);--mantine-color-red-light: rgba(236, 120, 120, 0.15);--mantine-color-red-light-hover: rgba(236, 120, 120, 0.2);--mantine-color-red-light-color: var(--mantine-color-red-0);--mantine-color-red-outline: var(--mantine-color-red-1);--mantine-color-red-outline-hover: rgba(254, 212, 212, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-5);--mantine-color-pink-filled-hover: var(--mantine-color-pink-6);--mantine-color-pink-light: rgba(250, 162, 193, 0.15);--mantine-color-pink-light-hover: rgba(250, 162, 193, 0.2);--mantine-color-pink-light-color: var(--mantine-color-pink-0);--mantine-color-pink-outline: var(--mantine-color-pink-1);--mantine-color-pink-outline-hover: rgba(255, 222, 235, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-5);--mantine-color-grape-filled-hover: var(--mantine-color-grape-6);--mantine-color-grape-light: rgba(229, 153, 247, 0.15);--mantine-color-grape-light-hover: rgba(229, 153, 247, 0.2);--mantine-color-grape-light-color: var(--mantine-color-grape-0);--mantine-color-grape-outline: var(--mantine-color-grape-1);--mantine-color-grape-outline-hover: rgba(243, 217, 250, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-5);--mantine-color-violet-filled-hover: var(--mantine-color-violet-6);--mantine-color-violet-light: rgba(209, 111, 255, 0.15);--mantine-color-violet-light-hover: rgba(209, 111, 255, 0.2);--mantine-color-violet-light-color: var(--mantine-color-violet-0);--mantine-color-violet-outline: var(--mantine-color-violet-1);--mantine-color-violet-outline-hover: rgba(241, 207, 255, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-5);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-6);--mantine-color-indigo-light: rgba(123, 121, 235, 0.15);--mantine-color-indigo-light-hover: rgba(123, 121, 235, 0.2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-0);--mantine-color-indigo-outline: var(--mantine-color-indigo-1);--mantine-color-indigo-outline-hover: rgba(214, 213, 254, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-5);--mantine-color-blue-filled-hover: var(--mantine-color-blue-6);--mantine-color-blue-light: rgba(116, 192, 252, 0.15);--mantine-color-blue-light-hover: rgba(116, 192, 252, 0.2);--mantine-color-blue-light-color: var(--mantine-color-blue-0);--mantine-color-blue-outline: var(--mantine-color-blue-1);--mantine-color-blue-outline-hover: rgba(208, 235, 255, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-5);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-6);--mantine-color-cyan-light: rgba(100, 218, 255, 0.15);--mantine-color-cyan-light-hover: rgba(100, 218, 255, 0.2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-0);--mantine-color-cyan-outline: var(--mantine-color-cyan-1);--mantine-color-cyan-outline-hover: rgba(202, 245, 255, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-5);--mantine-color-teal-filled-hover: var(--mantine-color-teal-6);--mantine-color-teal-light: rgba(99, 230, 190, 0.15);--mantine-color-teal-light-hover: rgba(99, 230, 190, 0.2);--mantine-color-teal-light-color: var(--mantine-color-teal-0);--mantine-color-teal-outline: var(--mantine-color-teal-1);--mantine-color-teal-outline-hover: rgba(195, 250, 232, 0.05);--mantine-color-green-filled: var(--mantine-color-green-5);--mantine-color-green-filled-hover: var(--mantine-color-green-6);--mantine-color-green-light: rgba(134, 223, 148, 0.15);--mantine-color-green-light-hover: rgba(134, 223, 148, 0.2);--mantine-color-green-light-color: var(--mantine-color-green-0);--mantine-color-green-outline: var(--mantine-color-green-1);--mantine-color-green-outline-hover: rgba(215, 246, 220, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-5);--mantine-color-lime-filled-hover: var(--mantine-color-lime-6);--mantine-color-lime-light: rgba(192, 235, 117, 0.15);--mantine-color-lime-light-hover: rgba(192, 235, 117, 0.2);--mantine-color-lime-light-color: var(--mantine-color-lime-0);--mantine-color-lime-outline: var(--mantine-color-lime-1);--mantine-color-lime-outline-hover: rgba(233, 250, 200, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-5);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-6);--mantine-color-yellow-light: rgba(255, 201, 102, 0.15);--mantine-color-yellow-light-hover: rgba(255, 201, 102, 0.2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-0);--mantine-color-yellow-outline: var(--mantine-color-yellow-1);--mantine-color-yellow-outline-hover: rgba(255, 238, 205, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-5);--mantine-color-orange-filled-hover: var(--mantine-color-orange-6);--mantine-color-orange-light: rgba(255, 192, 120, 0.15);--mantine-color-orange-light-hover: rgba(255, 192, 120, 0.2);--mantine-color-orange-light-color: var(--mantine-color-orange-0);--mantine-color-orange-outline: var(--mantine-color-orange-1);--mantine-color-orange-outline-hover: rgba(255, 232, 204, 0.05);--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-cyan-7) 100%);--app-color-surface: #2e2e2e;}
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-red-light: rgba(224, 40, 41, 0.1);--mantine-color-red-light-hover: rgba(224, 40, 41, 0.12);--mantine-color-red-outline-hover: rgba(224, 40, 41, 0.05);--mantine-color-violet-light: rgba(176, 9, 255, 0.1);--mantine-color-violet-light-hover: rgba(176, 9, 255, 0.12);--mantine-color-violet-outline-hover: rgba(176, 9, 255, 0.05);--mantine-color-indigo-light: rgba(45, 42, 223, 0.1);--mantine-color-indigo-light-hover: rgba(45, 42, 223, 0.12);--mantine-color-indigo-outline-hover: rgba(45, 42, 223, 0.05);--mantine-color-cyan-light: rgba(0, 194, 255, 0.1);--mantine-color-cyan-light-hover: rgba(0, 194, 255, 0.12);--mantine-color-cyan-outline-hover: rgba(0, 194, 255, 0.05);--mantine-color-green-light: rgba(63, 204, 84, 0.1);--mantine-color-green-light-hover: rgba(63, 204, 84, 0.12);--mantine-color-green-outline-hover: rgba(63, 204, 84, 0.05);--mantine-color-yellow-light: rgba(255, 169, 15, 0.1);--mantine-color-yellow-light-hover: rgba(255, 169, 15, 0.12);--mantine-color-yellow-outline-hover: rgba(255, 169, 15, 0.05);--app-color-surface: #f1f3f5;--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-5) 100%);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><script type="application/ld+json">{"@context":"https://schema.org","@type":"QAPage","mainEntity":{"@type":"Question","name":"Макрос","answerCount":2,"datePublished":"2023-06-05T10:02:26.763Z","author":{"@type":"Person","name":"Nikolai Gagarinov"},"acceptedAnswer":{"@type":"Answer","text":"Макрос - это последовательность команд или операций, которые выполняются автоматически. В программировании макросы используются для упрощения написания кода и уменьшения количества повторяющихся фрагментов. Макросы могут быть определены на разных уровнях абстракции, от простых однострочных операций до сложных процедур, состоящих из десятков или сотен строк кода.","datePublished":"2023-11-16T13:10:22.489Z","upvoteCount":0,"author":{"@type":"Person","name":"Елена Редькина"},"url":"https://ru.hexlet.io/qna/glossary/questions/chto-takoe-makros#answer-3063"},"suggestedAnswer":[{"@type":"Answer","text":"Макрос — это инструмент автоматизации, позволяющий выполнять повторяющиеся действия в программах Microsoft Office с помощью заранее записанных команд. Он помогает заменить рутину — клики, вставки, форматирование, фильтры — на один сценарий, запускаемый по кнопке или сочетанию клавиш.\n\n\n\nИдея автоматизации рутинных операций появилась ещё в 1980-х годах, когда офисные приложения начали превращаться из простых редакторов в мощные рабочие инструменты. В Excel функция записи действий появилась одной из первых. Позже ее подхватили другие продукты Microsoft Office: Word, Outlook, PowerPoint, Access. Сегодня макросы (макрокоманды) превратились в полноценные мини-программы, которые умеют формировать отчёты, объединять данные из разных файлов, взаимодействовать с базами, управлять внешними приложениями. Всё это реализуется с помощью встроенного языка VBA (Visual Basic for Applications), который позволяет описывать любую последовательность действий в виде кода.\n\n## Зачем нужны макросы\n\nИх главная цель — освободить человека от однообразных действий. Вместо того, чтобы вручную вводить формулы, копировать строки или выравнивать ячейки, можно один раз записать сценарий, который сделает всё автоматически. Это позволяет сосредоточиться на анализе, принятии решений, а не на механической работе.\n\n### Автоматизация рутинных операций\n\nВ любом офисном процессе есть повторяющиеся действия: создание отчетов, обработка данных, форматирование таблиц, сортировка и фильтрация. Макрокоманды позволяют превратить такие действия в шаблоны.\n\n### Снижение количества ошибок\n\nРучная работа всегда связана с риском — особенно при работе с большими таблицами. Макросы исключают человеческий фактор: формулы вставляются точно, данные не теряются, расчеты выполняются одинаково при каждом запуске.\n\n### Ускорение работы с данными\n\nАвтоматизация действий экономит минуты, которые накапливаются в часы и дни. В крупных организациях макросы сокращают время подготовки отчётов и документов в несколько раз. Вместо 20 шагов — один.\n\n## Применение в реальных сценариях\n\nНа практике макросы применяются в десятках задач:\n\n* в Excel — формирование финансовых отчетов, консолидация данных из разных источников, подготовка графиков и сводных таблиц;\n* в Word — автоматическое оформление договоров и актов;\n* в Outlook — рассылка писем по шаблону;\n* в PowerPoint — массовое обновление слайдов или шаблонов;\n* в Access — создание интерактивных форм и отчетов.\n\n## Кто использует макросы в работе\n\nЭто инструмент не только для программистов, а для всех, кто работает с данными и повторяющимися процессами.\n\n### Бухгалтеры, экономисты\n\nДля финансовых специалистов автоматизация стала необходимостью. Макросы в Excel упрощают заполнение отчётных форм, проверку балансов, расчет налогов, консолидирование данных из разных источников. Их часто используют для моделирования прогнозов: код на VBA помогает быстро пересчитать десятки сценариев при изменении исходных параметров.\n\n### Аналитики, маркетологи\n\nВ аналитике автоматизацияа позволяет собирать данные из CRM, выгрузок, опросов, сайтов, объединять их и визуализировать в одном файле. В маркетинге — помогает готовить отчеты по продажам и рекламным кампаниям:формирует диаграммы, выделяет ключевые показатели, рассылает результаты команде.\n\n### IT-специалисты, администраторы\n\nС помощью макрокоманд администраторы ведут учёт оборудования, проверяют настройки рабочих станций, анализируют логи и даже управляют почтовыми рассылками через Outlook. В некоторых компаниях макросы служат мостом между Excel и внутренними системами учёта: таблица может автоматически отправлять запросы, получать результаты и обновлять данные.\n\n### Универсальный инструмент для всех\n\nГлавное преимущество макросов — в том, что их можно адаптировать под любую задачу. Не важно, идёт ли речь о простом форматировании таблицы или о построении сложных аналитических моделей — сценарий можно создать без глубоких знаний программирования.\n\n\n\n## Устройство макросов\n\nПо своей сути это — это последовательность команд, которую выполняет программа в заданном порядке. Каждая команда соответствует действию пользователя: выделить ячейку, скопировать данные, применить форматирование, вставить формулу и т. д. Вся эта последовательность записывается либо вручную, либо через встроенный инструмент — *макрорекордер*. После записи ее можно воспроизводить в любое время.\n\n### Макрос как последовательность команд\n\nКогда пользователь записывает действия, Excel сохраняет каждое из них как инструкцию. Например:\n\n1. выделить диапазон;\n2. изменить шрифт;\n3. вставить сумму в соседнюю ячейку.\n\nПосле сохранения макрос воспроизводит эти действия в том же порядке, но за доли секунды. В простейшем виде это сценарий автоматизации без необходимости программировать. Однако, если добавить к нему код, возможности значительно расширяются.\n\n### VBA — язык для управления\n\nВ основе макросов лежит язык VBA (Visual Basic for Applications). Это упрощённая версия Visual Basic, встроенная в приложения Microsoft Office. Она позволяет обращаться к любым объектам программы — листам, таблицам, ячейкам, слайдам или письмам — и управлять ими. Например, можно задать, чтобы сценарий выполнялся только при определённом условии или применялся к разным диапазонам данных.\n\n### Структура простого кода VBA\n\nКод строится по определённым правилам. \n Простейший пример:\n\n```text\nSub Форматирование()\n Range("A1:B10").Select\tSelection.Font.Bold = True\n Selection.Interior.Color = RGB(240, 240, 240)\nEnd Sub\n```\n\n`Sub` (сокращение от *Subroutine*) задаёт начало процедуры, а `End Sub` — конец. Всё, что находится между ними, и есть набор команд. Каждая строка — отдельное действие: выбор диапазона, изменение параметра шрифта, заливка цветом.\n\nПри запуске Excel интерпретирует код построчно, выполняя все указанные инструкции, как детально прописанный алгоритм, который можно редактировать, улучшать и повторно использовать.\n\n## Как создавать макросы в Excel\n\nПрежде чем начать работу с автоматизацией, нужно подготовить Excel. По умолчанию средства разработки скрыты, поэтому сначала нужно включить специальную вкладку.\n\n### Подготовка Excel\n\nЧтобы открыть доступ к инструментам записи и редактирования:\n\n1. Перейдите в меню Файл → Параметры → Настроить ленту.\n2. В списке справа отметьте пункт Разработчик (Developer) и нажмите ОК.\n\nПосле этого на панели появится новая вкладка. Именно здесь находятся все инструменты, связанные с VBA и макросами: кнопка записи, доступ к редактору кода и управление параметрами безопасности.\n\n### Способы создания макросов\n\nЕсть два основных способа:\n\n1. Запись действий вручную (макрорекордер) \n Подходит тем, кто не знаком с программированием. Excel фиксирует все действия пользователя и сохраняет их в виде готового сценария.\n\n * Нажмите Запись макроса.\n * Укажите имя и способ запуска (например, сочетание клавиш).\n * Выполните нужные действия в таблице.\n * Остановите запись.\n\nПосле этого сценарий можно запускать в любое время — Excel воспроизводит записанные шаги.\n\n2. Создание через редактор VBA \n Этот способ дает полный контроль. Вкладка Разработчик → Visual Basic открывает среду редактирования, где код можно писать вручную, добавлять условия, циклы, обработку ошибок.\n\n### Сравнение подходов\n\n| Критерий | Запись действий | Редактор VBA |\n|:---------------------------|:------------------------------|:-----------------------------------------|\n| Простота освоения | Очень высокая | Требует базовых знаний кода |\n| Гибкость | Только повтор действий | Полный контроль над логикой |\n| Производительность | Подходит для простых операций | Эффективен при работе с большими данными |\n| Возможность редактирования | Ограничена | Безгранична |\n\nОбычно пользователи начинают с записи макрокоманд, а затем постепенно переходят к написанию собственного кода. Такой путь позволяет понять логику VBA без лишней теории.\n\n## Ограничения макросов\n\nОни мощны в рутинных задачах, но не заменяют полноценное программирование. Ограничения касаются как логики выполнения, так и технических возможностей среды VBA.\n\n### Функциональные ограничения\n\nVBA поддерживает базовые конструкции — условия, циклы, ветвления, обращение к объектам. Однако по сравнению с современными языками вроде Python или JavaScript возможности скриптов ограничены. Например, макрос не может напрямую взаимодействовать с внешними API без дополнительных библиотек, а обработка больших объемов данных в Excel занимает больше времени. Кроме того, многое зависит от версии Office: сценарий, записанный в одной среде, может не работать в другой из-за несовпадения свойств объектов.\n\n### Технические особенности\n\nЗапись макроса с помощью рекордера подходит для типовых действий, но не всегда точна. Рекордер фиксирует буквально каждое нажатие и координату ячейки, что делает код «жёстко привязанным» к конкретному файлу. Если структура таблицы изменится, сценарий может работать неправильно. Также присутствует чувствительность к локализации и форматам: различия в разделителях, датах или числах могут вызывать ошибки при запуске на другом компьютере.\n\n### Производительность\n\nМакросы эффективны при автоматизации сотен операций, но при работе с большими таблицами производительность может падать. Каждое обращение к ячейке или объекту Excel требует ресурсов, и если таких обращений тысячи, сценарий выполняется заметно медленнее. \n Чтобы ускорить выполнение, разработчики оптимизируют код: используют массивы, отключают обновление экрана и пересчёт формул во время выполнения. Тем не менее VBA остаётся средой с ограниченной скоростью исполнения.\n\n![][https://cdn6.hexlet.io/oWnAxopeBXGl.png]\n\n## Практическое руководство\n\nСоздание автоматизированного сценария в Excel может занять меньше минуты. Важно понять логику — макрос фиксирует каждое действие, а затем выполняет его в том же порядке.\n\n### Запись\n\n1. На вкладке Разработчик нажмите Запись макроса.\n2. Укажите имя и при необходимости назначьте сочетание клавиш.\n3. Выполните серию действий — например, выделите диапазон, примените форматирование, вставьте формулу.\n4. Завершите запись кнопкой «Остановить».\n\nТеперь сценарий можно запускать: Excel повторит те же шаги автоматически. Это удобно для форматирования отчетов, расчёта итогов или подготовки шаблонов.\n\n### Написание кода вручную\n\nДля большей гибкости открывают редактор Visual Basic. Там создают процедуру:\n\n```text\nSub Отчет()\n Range("A1:D1").Font.Bold = True\n Range("A1:D1").Interior.Color = RGB(200, 230, 255)\n MsgBox "Оформление завершено"\nEnd Sub\n```\n\nТакой код не просто копирует действия, а добавляет логику — можно вставить условие или сообщение, обработать несколько листов. \nМакрокоманды, написанные вручную, работают быстрее и чище, чем записанный рекордером, потому что не содержит лишних шагов.\n\n### Запуск сценариев\n\nВыполнить сценарий можно тремя способами:\n\n* через вкладку Разработчик → Макросы;\n\n* нажатием горячих клавиш;\n\n* привязкой к кнопке или объекту на листе.\n\nЕсли в файле несколько сценариев, Excel позволяет выбрать нужный из списка. Важно помнить, что при переносе документа на другой компьютер макросы сохраняются только в формате **.xlsm** или **.xltm**.\n\n## Работа с макросами\n\nПосле создания сценариев важно понимать, как они ведут себя при копировании, сохранении и совместном доступе. Правильная настройка форматов и ссылок позволяет избежать ошибок и потери функциональности.\n\n### Абсолютные и относительные ссылки\n\nКогда макрос записывается, Excel может фиксировать действия относительно конкретных ячеек или их положения на листе.\n\n* Абсолютные ссылки означают, что сценарий всегда работает с тем же диапазоном (например, A1:B10).\n* Относительные ссылки позволяют применять сценарий к любому месту, где находится курсор, сохраняя логику, но изменяя координаты.\n\nВыбор зависит от задачи: для отчётов лучше использовать абсолютные ссылки, а для форматирования или повседневных операций — относительные.\n\n### Форматы файлов\n\nЧтобы макрокоманды сохранялись и запускались, необходимо использовать специальные форматы:\n\n* _.xlsm_ — стандартный рабочий файл с поддержкой макросов;\n* _.xltm_ — шаблон, содержащий макросы;\n* _.xlsx_ — формат без поддержки сценариев.\n\nЕсли документ сохранить как .xlsx, код VBA в нём не останется — Excel предупредит об этом перед сохранением. Поэтому при совместной работе важно убедиться, что файл сохранен в правильном формате.\n\n### Личная книга макросов\n\nДля универсальных сценариев существует *личная книга* — специальный файл, который открывается вместе с Excel, но остается скрытым. Макросы из этой книги доступны во всех документах. Это удобно, если пользователь часто выполняет одинаковые операции: например, форматирует таблицы или очищает данные.\n\n![][https://cdn6.hexlet.io/xFKEkcdUe6pW.png]\n\n### Совместное использование\n\nМакросы можно передавать коллегам несколькими способами:\n\n* через общий файл .xlsm;\n\n* экспортом модулей VBA в отдельные файлы;\n\n* публикацией шаблона .xltm в корпоративной библиотеке.\n\nПри коллективной работе стоит помнить о настройках безопасности: на компьютерах коллег выполнение сценариев может быть заблокировано, если уровень доверия к макросам не настроен.\n\n### Безопасность\n\nАвтоматизация удобна, но может быть рискованной. Макросы способны выполнять любые действия, включая удаление или изменение данных, поэтому злоумышленники иногда используют их для распространения вирусов. Особенно часто такие сценарии встречаются во вложениях писем или подозрительных файлах из сети. Чтобы защитить пользователей, Microsoft внедрила систему уровней безопасности. При открытии документа Excel проверяет, есть ли в нём макросы, предлагая включить их вручную. Если источник файла неизвестен, сценарии не выполняются.\n\nВ настройках Центра управления безопасностью можно выбрать уровень доверия: от полного запрета до разрешения, подписанных цифровым сертификатом. В корпоративной среде обычно используется средний уровень — запуск только проверенных сценариев.\n\nГлавное правило простое: включать макросы только в тех файлах, которым вы доверяете. Даже безопасный инструмент может стать уязвимостью, если пренебречь базовыми мерами защиты.\n\n## Примеры использования макросов\n\n* Форматирование таблиц. Один сценарий может очистить лишние строки, выровнять данные, применить шрифт и цветовую схему. Это экономит время при подготовке отчетов и презентаций.\n* Создание отчетов. Макросы автоматически подставляют даты, формулы, обновляют сводные таблицы и формируют итоговые значения. Часто один код выполняет работу нескольких сотрудников.\n* Выгрузка и обработка данных. Сценарий способен импортировать данные из CSV, XML или базы Access, преобразовать их и разложить по нужным листам.\n* Интеграция Excel и Outlook. Простая процедура на VBA может сформировать письмо и разослать его по списку адресов, прикрепив актуальный отчет.\n* Работа в Word и PowerPoint. Например, создание документов на основе шаблонов, замена данных в тексте, массовое обновление презентации.\n\n## Полезные советы для начинающих\n\nОсвоить макросы можно даже без опыта программирования — достаточно понимать логику Excel и немного попрактиковаться. Главное — начинать постепенно, переходя от простых действий к написанию коротких процедур.\n\n### Как научиться: пошагово\n\n1. Начните с макрорекордера — он покажет, как каждое действие превращается в строку кода.\n2. Откройте редактор VBA и посмотрите, что записалось. Попробуйте изменить один параметр — цвет, диапазон или формат.\n3. Освойте базовые конструкции: `If`, `For`, `MsgBox`. Даже три-четыре таких команды дают огромный простор для автоматизации.\n4. Развивайтесь на практике — берите типовые задачи и превращайте их в сценарии.\n\n### Рекомендуемые ресурсы\n\n* курсы [https://ru.hexlet.io/courses](https://ru.hexlet.io/courses); \n* книга «Excel VBA Programming For Dummies»;\n* тематические форумы и блоги.\n\n### Ошибки новичков\n\n* копирование чужого кода без понимания логики;\n* отсутствие комментариев и структуры;\n* использование абсолютных ссылок там, где нужны относительные;\n* сохранение макросов в формате .xlsx, из-за чего код теряется.\n\n## Заключение\n\nМакросы — это не просто вспомогательная функция Excel, а полноценный инструмент повышения эффективности. Они позволяют автоматизировать повторяющиеся процессы, стандартизировать отчёты и сократить количество ошибок. Освоив основы VBA, можно создавать сценарии, которые экономят часы и дни рутинных операций. Даже базовые знания открывают возможности: от форматирования до интеграции разных программ Office.\n\nА для тех, кто работает с данными ежедневно, макрокоманды становятся частью профессиональной компетенции — умением быстро решать задачи, которые другим требуют десятков кликов.\n","datePublished":"2025-11-18T13:58:31.992Z","upvoteCount":0,"author":{"@type":"Person","name":"Nikolai Gagarinov"},"url":"https://ru.hexlet.io/qna/glossary/questions/chto-takoe-makros#answer-5155"}]}}</script><div style="--container-size:var(--container-size-lg);margin-top:var(--mantine-spacing-xl);height:100%" class="m_7485cace mantine-Container-root" data-size="lg" data-strategy="block"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"position":1,"@type":"ListItem","item":{"@id":"/qna","name":"Вопросы и ответы"}},{"position":2,"@type":"ListItem","item":{"@id":"/qna/glossary/questions","name":"Глоссарий"}},{"position":3,"@type":"ListItem","item":{"@id":"/qna/glossary/questions/chto-takoe-makros","name":"Макрос"}}]}</script><div style="margin-bottom:var(--mantine-spacing-xs)" class="m_8b3717df mantine-Breadcrumbs-root"><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/"><div style="color:inherit" class="m_4451eb3a mantine-Center-root"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-home-link "><path d="M20.085 11.085l-8.085 -8.085l-9 9h2v7a2 2 0 0 0 2 2h4.5"></path><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 1.807 1.143"></path><path d="M20 21a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M20 16a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M15 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M21 16l-5 3l5 2"></path></svg></div></a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/qna">Вопросы и ответы</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/qna/glossary/questions">Глоссарий</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><p style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root" data-size="sm">Макрос</p></div><style data-mantine-styles="inline">.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}@media(min-width: 36em){.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}}</style><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root __m__-_R_eub_"><style data-mantine-styles="inline">.__m__-_R_deub_{width:100%;}@media(min-width: 36em){.__m__-_R_deub_{width:70%;}}@media(min-width: 75em){.__m__-_R_deub_{width:75%;}}</style><div class="__m__-_R_deub_"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size)" class="m_8a5d1357 mantine-Title-root" data-order="1">Макрос</h1></div></div></div><style data-mantine-styles="inline">.__m__-_R_iub_{--grid-gutter:var(--mantine-spacing-md);}</style><div class="m_410352e9 mantine-Grid-root __m__-_R_iub_"><div class="m_dee7bd2f mantine-Grid-inner"><style data-mantine-styles="inline">.__m__-_R_3diub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_3diub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}@media(min-width: 62em){.__m__-_R_3diub_{--col-flex-grow:auto;--col-flex-basis:66.66666666666667%;--col-max-width:66.66666666666667%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_3diub_"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root"></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-xl);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-inline-start:auto" class="m_4081bf90 mantine-Group-root"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-calendar "><path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12"></path><path d="M16 3v4"></path><path d="M8 3v4"></path><path d="M4 11h16"></path><path d="M11 15h1"></path><path d="M12 15v3"></path></svg><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-inherit="true">3 года назад</p></div><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-inherit="true">Nikolai Gagarinov</p></div></div><div role="link" tabindex="0" style="cursor:pointer"><button style="display:block;width:100%" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Присоединяйтесь к нашему Telegram-сообществу"><div style="background-color:light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-6));margin-block:var(--mantine-spacing-xs)" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:auto;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-telegram "><path d="M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4"></path></svg></div>Присоединяйтесь к нашему Telegram-сообществу</div></div></button></div><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-block:var(--mantine-spacing-xl)" class="m_8a5d1357 mantine-Title-root" data-order="2">Ответы</h2><div style="margin-bottom:var(--mantine-spacing-xl);padding:var(--mantine-spacing-lg)" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true" id="answer-5155"><div style="--group-gap:calc(1.125rem * var(--mantine-scale));--group-align:stretch;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;font-size:var(--mantine-font-size-h1);font-weight:lighter;text-align:center" class="m_6d731127 mantine-Stack-root">0<a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/qna/glossary/questions/chto-takoe-makros/answers/5155/vote"><div style="--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div></a></div><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;width:100%;min-width:0rem" class="m_6d731127 mantine-Stack-root"><div style="margin-bottom:auto" class="m_d08caa0 mantine-Typography-root"><p>Макрос — это инструмент автоматизации, позволяющий выполнять повторяющиеся действия в программах Microsoft Office с помощью заранее записанных команд. Он помогает заменить рутину — клики, вставки, форматирование, фильтры — на один сценарий, запускаемый по кнопке или сочетанию клавиш.</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://cdn6.hexlet.io/txEIWI20FUQk.png" alt="image" loading="lazy"/></p>
<p>Идея автоматизации рутинных операций появилась ещё в 1980-х годах, когда офисные приложения начали превращаться из простых редакторов в мощные рабочие инструменты. В Excel функция записи действий появилась одной из первых. Позже ее подхватили другие продукты Microsoft Office: Word, Outlook, PowerPoint, Access. Сегодня макросы (макрокоманды) превратились в полноценные мини-программы, которые умеют формировать отчёты, объединять данные из разных файлов, взаимодействовать с базами, управлять внешними приложениями. Всё это реализуется с помощью встроенного языка VBA (Visual Basic for Applications), который позволяет описывать любую последовательность действий в виде кода.</p>
<h2 id="heading-2-1">Зачем нужны макросы</h2>
<p>Их главная цель — освободить человека от однообразных действий. Вместо того, чтобы вручную вводить формулы, копировать строки или выравнивать ячейки, можно один раз записать сценарий, который сделает всё автоматически. Это позволяет сосредоточиться на анализе, принятии решений, а не на механической работе.</p>
<h3 id="heading-3-2">Автоматизация рутинных операций</h3>
<p>В любом офисном процессе есть повторяющиеся действия: создание отчетов, обработка данных, форматирование таблиц, сортировка и фильтрация. Макрокоманды позволяют превратить такие действия в шаблоны.</p>
<h3 id="heading-3-3">Снижение количества ошибок</h3>
<p>Ручная работа всегда связана с риском — особенно при работе с большими таблицами. Макросы исключают человеческий фактор: формулы вставляются точно, данные не теряются, расчеты выполняются одинаково при каждом запуске.</p>
<h3 id="heading-3-4">Ускорение работы с данными</h3>
<p>Автоматизация действий экономит минуты, которые накапливаются в часы и дни. В крупных организациях макросы сокращают время подготовки отчётов и документов в несколько раз. Вместо 20 шагов — один.</p>
<h2 id="heading-2-5">Применение в реальных сценариях</h2>
<p>На практике макросы применяются в десятках задач:</p>
<ul>
<li>в Excel — формирование финансовых отчетов, консолидация данных из разных источников, подготовка графиков и сводных таблиц;</li>
<li>в Word — автоматическое оформление договоров и актов;</li>
<li>в Outlook — рассылка писем по шаблону;</li>
<li>в PowerPoint — массовое обновление слайдов или шаблонов;</li>
<li>в Access — создание интерактивных форм и отчетов.</li>
</ul>
<h2 id="heading-2-6">Кто использует макросы в работе</h2>
<p>Это инструмент не только для программистов, а для всех, кто работает с данными и повторяющимися процессами.</p>
<h3 id="heading-3-7">Бухгалтеры, экономисты</h3>
<p>Для финансовых специалистов автоматизация стала необходимостью. Макросы в Excel упрощают заполнение отчётных форм, проверку балансов, расчет налогов, консолидирование данных из разных источников. Их часто используют для моделирования прогнозов: код на VBA помогает быстро пересчитать десятки сценариев при изменении исходных параметров.</p>
<h3 id="heading-3-8">Аналитики, маркетологи</h3>
<p>В аналитике автоматизацияа позволяет собирать данные из CRM, выгрузок, опросов, сайтов, объединять их и визуализировать в одном файле. В маркетинге — помогает готовить отчеты по продажам и рекламным кампаниям<div></div> диаграммы, выделяет ключевые показатели, рассылает результаты команде.</p>
<h3 id="heading-3-9">IT-специалисты, администраторы</h3>
<p>С помощью макрокоманд администраторы ведут учёт оборудования, проверяют настройки рабочих станций, анализируют логи и даже управляют почтовыми рассылками через Outlook. В некоторых компаниях макросы служат мостом между Excel и внутренними системами учёта: таблица может автоматически отправлять запросы, получать результаты и обновлять данные.</p>
<h3 id="heading-3-10">Универсальный инструмент для всех</h3>
<p>Главное преимущество макросов — в том, что их можно адаптировать под любую задачу. Не важно, идёт ли речь о простом форматировании таблицы или о построении сложных аналитических моделей — сценарий можно создать без глубоких знаний программирования.</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://cdn6.hexlet.io/SvcVn5YnWeb8.png" alt="image2" loading="lazy"/></p>
<h2 id="heading-2-11">Устройство макросов</h2>
<p>По своей сути это — это последовательность команд, которую выполняет программа в заданном порядке. Каждая команда соответствует действию пользователя: выделить ячейку, скопировать данные, применить форматирование, вставить формулу и т. д. Вся эта последовательность записывается либо вручную, либо через встроенный инструмент — <em>макрорекордер</em>. После записи ее можно воспроизводить в любое время.</p>
<h3 id="heading-3-12">Макрос как последовательность команд</h3>
<p>Когда пользователь записывает действия, Excel сохраняет каждое из них как инструкцию. Например:</p>
<ol>
<li>выделить диапазон;</li>
<li>изменить шрифт;</li>
<li>вставить сумму в соседнюю ячейку.</li>
</ol>
<p>После сохранения макрос воспроизводит эти действия в том же порядке, но за доли секунды. В простейшем виде это сценарий автоматизации без необходимости программировать. Однако, если добавить к нему код, возможности значительно расширяются.</p>
<h3 id="heading-3-13">VBA — язык для управления</h3>
<p>В основе макросов лежит язык VBA (Visual Basic for Applications). Это упрощённая версия Visual Basic, встроенная в приложения Microsoft Office. Она позволяет обращаться к любым объектам программы — листам, таблицам, ячейкам, слайдам или письмам — и управлять ими. Например, можно задать, чтобы сценарий выполнялся только при определённом условии или применялся к разным диапазонам данных.</p>
<h3 id="heading-3-14">Структура простого кода VBA</h3>
<p>Код строится по определённым правилам.<br/>
<!-- -->Простейший пример:</p>
<div style="margin-bottom:var(--mantine-spacing-lg)" class="m_e597c321 mantine-CodeHighlight-codeHighlight" dir="ltr"><div class="m_be7e9c9c mantine-CodeHighlight-controls"><button style="--ai-bg:transparent;--ai-hover:transparent;--ai-color:inherit;--ai-bd:none" class="mantine-focus-auto mantine-active m_d498bab7 mantine-CodeHighlight-control m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="none" type="button" aria-label="Copy code"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"></path><path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"></path></svg></span></button></div><div style="--scrollarea-scrollbar-size:calc(0.25rem * var(--mantine-scale));--sa-corner-width:0px;--sa-corner-height:0px" class="m_f744fd40 mantine-CodeHighlight-scrollarea m_d57069b5 mantine-ScrollArea-root" dir="ltr"><div style="overflow-x:hidden;overflow-y:hidden;overscroll-behavior-inline:none" class="m_c0783ff9 mantine-ScrollArea-viewport" data-scrollbars="xy"><div class="m_b1336c6 mantine-ScrollArea-content"><pre class="m_2c47c4fd mantine-CodeHighlight-pre" style="padding:0"><code class="m_5caae6d3 mantine-CodeHighlight-code">Sub Форматирование()
Range("A1:B10").Select Selection.Font.Bold = True
Selection.Interior.Color = RGB(240, 240, 240)
End Sub</code></pre></div></div></div><button class="mantine-focus-auto m_c9378bc2 mantine-CodeHighlight-showCodeButton m_87cf2631 mantine-UnstyledButton-root" data-hidden="true" type="button">Expand code</button></div>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Sub</code> (сокращение от <em>Subroutine</em>) задаёт начало процедуры, а <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">End Sub</code> — конец. Всё, что находится между ними, и есть набор команд. Каждая строка — отдельное действие: выбор диапазона, изменение параметра шрифта, заливка цветом.</p>
<p>При запуске Excel интерпретирует код построчно, выполняя все указанные инструкции, как детально прописанный алгоритм, который можно редактировать, улучшать и повторно использовать.</p>
<h2 id="heading-2-15">Как создавать макросы в Excel</h2>
<p>Прежде чем начать работу с автоматизацией, нужно подготовить Excel. По умолчанию средства разработки скрыты, поэтому сначала нужно включить специальную вкладку.</p>
<h3 id="heading-3-16">Подготовка Excel</h3>
<p>Чтобы открыть доступ к инструментам записи и редактирования:</p>
<ol>
<li>Перейдите в меню Файл → Параметры → Настроить ленту.</li>
<li>В списке справа отметьте пункт Разработчик (Developer) и нажмите ОК.</li>
</ol>
<p>После этого на панели появится новая вкладка. Именно здесь находятся все инструменты, связанные с VBA и макросами: кнопка записи, доступ к редактору кода и управление параметрами безопасности.</p>
<h3 id="heading-3-17">Способы создания макросов</h3>
<p>Есть два основных способа:</p>
<ol>
<li>
<p>Запись действий вручную (макрорекордер)<br/>
<!-- -->Подходит тем, кто не знаком с программированием. Excel фиксирует все действия пользователя и сохраняет их в виде готового сценария.</p>
<ul>
<li>Нажмите Запись макроса.</li>
<li>Укажите имя и способ запуска (например, сочетание клавиш).</li>
<li>Выполните нужные действия в таблице.</li>
<li>Остановите запись.</li>
</ul>
</li>
</ol>
<p>После этого сценарий можно запускать в любое время — Excel воспроизводит записанные шаги.</p>
<ol start="2">
<li>Создание через редактор VBA<br/>
<!-- -->Этот способ дает полный контроль. Вкладка Разработчик → Visual Basic открывает среду редактирования, где код можно писать вручную, добавлять условия, циклы, обработку ошибок.</li>
</ol>
<h3 id="heading-3-18">Сравнение подходов</h3>
<div style="--table-min-width:calc(50rem * var(--mantine-scale));--sa-corner-width:0px;--sa-corner-height:0px" class="m_a100c15 mantine-TableScrollContainer-scrollContainer m_d57069b5 mantine-ScrollArea-root"><div style="overflow-x:hidden;overflow-y:hidden" class="m_c0783ff9 mantine-ScrollArea-viewport" data-offset-scrollbars="x" data-scrollbars="xy"><div class="m_b1336c6 mantine-ScrollArea-content"><div class="m_62259741 mantine-TableScrollContainer-scrollContainerInner"><table><thead><tr><th style="text-align:left">Критерий</th><th style="text-align:left">Запись действий</th><th style="text-align:left">Редактор VBA</th></tr></thead><tbody><tr><td style="text-align:left">Простота освоения</td><td style="text-align:left">Очень высокая</td><td style="text-align:left">Требует базовых знаний кода</td></tr><tr><td style="text-align:left">Гибкость</td><td style="text-align:left">Только повтор действий</td><td style="text-align:left">Полный контроль над логикой</td></tr><tr><td style="text-align:left">Производительность</td><td style="text-align:left">Подходит для простых операций</td><td style="text-align:left">Эффективен при работе с большими данными</td></tr><tr><td style="text-align:left">Возможность редактирования</td><td style="text-align:left">Ограничена</td><td style="text-align:left">Безгранична</td></tr></tbody></table></div></div></div></div>
<p>Обычно пользователи начинают с записи макрокоманд, а затем постепенно переходят к написанию собственного кода. Такой путь позволяет понять логику VBA без лишней теории.</p>
<h2 id="heading-2-19">Ограничения макросов</h2>
<p>Они мощны в рутинных задачах, но не заменяют полноценное программирование. Ограничения касаются как логики выполнения, так и технических возможностей среды VBA.</p>
<h3 id="heading-3-20">Функциональные ограничения</h3>
<p>VBA поддерживает базовые конструкции — условия, циклы, ветвления, обращение к объектам. Однако по сравнению с современными языками вроде Python или JavaScript возможности скриптов ограничены. Например, макрос не может напрямую взаимодействовать с внешними API без дополнительных библиотек, а обработка больших объемов данных в Excel занимает больше времени. Кроме того, многое зависит от версии Office: сценарий, записанный в одной среде, может не работать в другой из-за несовпадения свойств объектов.</p>
<h3 id="heading-3-21">Технические особенности</h3>
<p>Запись макроса с помощью рекордера подходит для типовых действий, но не всегда точна. Рекордер фиксирует буквально каждое нажатие и координату ячейки, что делает код «жёстко привязанным» к конкретному файлу. Если структура таблицы изменится, сценарий может работать неправильно. Также присутствует чувствительность к локализации и форматам: различия в разделителях, датах или числах могут вызывать ошибки при запуске на другом компьютере.</p>
<h3 id="heading-3-22">Производительность</h3>
<p>Макросы эффективны при автоматизации сотен операций, но при работе с большими таблицами производительность может падать. Каждое обращение к ячейке или объекту Excel требует ресурсов, и если таких обращений тысячи, сценарий выполняется заметно медленнее.<br/>
<!-- -->Чтобы ускорить выполнение, разработчики оптимизируют код: используют массивы, отключают обновление экрана и пересчёт формул во время выполнения. Тем не менее VBA остаётся средой с ограниченной скоростью исполнения.</p>
<p>![][<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://cdn6.hexlet.io/oWnAxopeBXGl.png" rel="noopener noreferrer" target="_blank">https://cdn6.hexlet.io/oWnAxopeBXGl.png</a>]</p>
<h2 id="heading-2-23">Практическое руководство</h2>
<p>Создание автоматизированного сценария в Excel может занять меньше минуты. Важно понять логику — макрос фиксирует каждое действие, а затем выполняет его в том же порядке.</p>
<h3 id="heading-3-24">Запись</h3>
<ol>
<li>На вкладке Разработчик нажмите Запись макроса.</li>
<li>Укажите имя и при необходимости назначьте сочетание клавиш.</li>
<li>Выполните серию действий — например, выделите диапазон, примените форматирование, вставьте формулу.</li>
<li>Завершите запись кнопкой «Остановить».</li>
</ol>
<p>Теперь сценарий можно запускать: Excel повторит те же шаги автоматически. Это удобно для форматирования отчетов, расчёта итогов или подготовки шаблонов.</p>
<h3 id="heading-3-25">Написание кода вручную</h3>
<p>Для большей гибкости открывают редактор Visual Basic. Там создают процедуру:</p>
<div style="margin-bottom:var(--mantine-spacing-lg)" class="m_e597c321 mantine-CodeHighlight-codeHighlight" dir="ltr"><div class="m_be7e9c9c mantine-CodeHighlight-controls"><button style="--ai-bg:transparent;--ai-hover:transparent;--ai-color:inherit;--ai-bd:none" class="mantine-focus-auto mantine-active m_d498bab7 mantine-CodeHighlight-control m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="none" type="button" aria-label="Copy code"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"></path><path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"></path></svg></span></button></div><div style="--scrollarea-scrollbar-size:calc(0.25rem * var(--mantine-scale));--sa-corner-width:0px;--sa-corner-height:0px" class="m_f744fd40 mantine-CodeHighlight-scrollarea m_d57069b5 mantine-ScrollArea-root" dir="ltr"><div style="overflow-x:hidden;overflow-y:hidden;overscroll-behavior-inline:none" class="m_c0783ff9 mantine-ScrollArea-viewport" data-scrollbars="xy"><div class="m_b1336c6 mantine-ScrollArea-content"><pre class="m_2c47c4fd mantine-CodeHighlight-pre" style="padding:0"><code class="m_5caae6d3 mantine-CodeHighlight-code">Sub Отчет()
Range("A1:D1").Font.Bold = True
Range("A1:D1").Interior.Color = RGB(200, 230, 255)
MsgBox "Оформление завершено"
End Sub</code></pre></div></div></div><button class="mantine-focus-auto m_c9378bc2 mantine-CodeHighlight-showCodeButton m_87cf2631 mantine-UnstyledButton-root" data-hidden="true" type="button">Expand code</button></div>
<p>Такой код не просто копирует действия, а добавляет логику — можно вставить условие или сообщение, обработать несколько листов.<br/>
<!-- -->Макрокоманды, написанные вручную, работают быстрее и чище, чем записанный рекордером, потому что не содержит лишних шагов.</p>
<h3 id="heading-3-26">Запуск сценариев</h3>
<p>Выполнить сценарий можно тремя способами:</p>
<ul>
<li>
<p>через вкладку Разработчик → Макросы;</p>
</li>
<li>
<p>нажатием горячих клавиш;</p>
</li>
<li>
<p>привязкой к кнопке или объекту на листе.</p>
</li>
</ul>
<p>Если в файле несколько сценариев, Excel позволяет выбрать нужный из списка. Важно помнить, что при переносе документа на другой компьютер макросы сохраняются только в формате <strong>.xlsm</strong> или <strong>.xltm</strong>.</p>
<h2 id="heading-2-27">Работа с макросами</h2>
<p>После создания сценариев важно понимать, как они ведут себя при копировании, сохранении и совместном доступе. Правильная настройка форматов и ссылок позволяет избежать ошибок и потери функциональности.</p>
<h3 id="heading-3-28">Абсолютные и относительные ссылки</h3>
<p>Когда макрос записывается, Excel может фиксировать действия относительно конкретных ячеек или их положения на листе.</p>
<ul>
<li>Абсолютные ссылки означают, что сценарий всегда работает с тем же диапазоном (например, A1<div></div>).</li>
<li>Относительные ссылки позволяют применять сценарий к любому месту, где находится курсор, сохраняя логику, но изменяя координаты.</li>
</ul>
<p>Выбор зависит от задачи: для отчётов лучше использовать абсолютные ссылки, а для форматирования или повседневных операций — относительные.</p>
<h3 id="heading-3-29">Форматы файлов</h3>
<p>Чтобы макрокоманды сохранялись и запускались, необходимо использовать специальные форматы:</p>
<ul>
<li><em>.xlsm</em> — стандартный рабочий файл с поддержкой макросов;</li>
<li><em>.xltm</em> — шаблон, содержащий макросы;</li>
<li><em>.xlsx</em> — формат без поддержки сценариев.</li>
</ul>
<p>Если документ сохранить как .xlsx, код VBA в нём не останется — Excel предупредит об этом перед сохранением. Поэтому при совместной работе важно убедиться, что файл сохранен в правильном формате.</p>
<h3 id="heading-3-30">Личная книга макросов</h3>
<p>Для универсальных сценариев существует <em>личная книга</em> — специальный файл, который открывается вместе с Excel, но остается скрытым. Макросы из этой книги доступны во всех документах. Это удобно, если пользователь часто выполняет одинаковые операции: например, форматирует таблицы или очищает данные.</p>
<p>![][<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://cdn6.hexlet.io/xFKEkcdUe6pW.png" rel="noopener noreferrer" target="_blank">https://cdn6.hexlet.io/xFKEkcdUe6pW.png</a>]</p>
<h3 id="heading-3-31">Совместное использование</h3>
<p>Макросы можно передавать коллегам несколькими способами:</p>
<ul>
<li>
<p>через общий файл .xlsm;</p>
</li>
<li>
<p>экспортом модулей VBA в отдельные файлы;</p>
</li>
<li>
<p>публикацией шаблона .xltm в корпоративной библиотеке.</p>
</li>
</ul>
<p>При коллективной работе стоит помнить о настройках безопасности: на компьютерах коллег выполнение сценариев может быть заблокировано, если уровень доверия к макросам не настроен.</p>
<h3 id="heading-3-32">Безопасность</h3>
<p>Автоматизация удобна, но может быть рискованной. Макросы способны выполнять любые действия, включая удаление или изменение данных, поэтому злоумышленники иногда используют их для распространения вирусов. Особенно часто такие сценарии встречаются во вложениях писем или подозрительных файлах из сети. Чтобы защитить пользователей, Microsoft внедрила систему уровней безопасности. При открытии документа Excel проверяет, есть ли в нём макросы, предлагая включить их вручную. Если источник файла неизвестен, сценарии не выполняются.</p>
<p>В настройках Центра управления безопасностью можно выбрать уровень доверия: от полного запрета до разрешения, подписанных цифровым сертификатом. В корпоративной среде обычно используется средний уровень — запуск только проверенных сценариев.</p>
<p>Главное правило простое: включать макросы только в тех файлах, которым вы доверяете. Даже безопасный инструмент может стать уязвимостью, если пренебречь базовыми мерами защиты.</p>
<h2 id="heading-2-33">Примеры использования макросов</h2>
<ul>
<li>Форматирование таблиц. Один сценарий может очистить лишние строки, выровнять данные, применить шрифт и цветовую схему. Это экономит время при подготовке отчетов и презентаций.</li>
<li>Создание отчетов. Макросы автоматически подставляют даты, формулы, обновляют сводные таблицы и формируют итоговые значения. Часто один код выполняет работу нескольких сотрудников.</li>
<li>Выгрузка и обработка данных. Сценарий способен импортировать данные из CSV, XML или базы Access, преобразовать их и разложить по нужным листам.</li>
<li>Интеграция Excel и Outlook. Простая процедура на VBA может сформировать письмо и разослать его по списку адресов, прикрепив актуальный отчет.</li>
<li>Работа в Word и PowerPoint. Например, создание документов на основе шаблонов, замена данных в тексте, массовое обновление презентации.</li>
</ul>
<h2 id="heading-2-34">Полезные советы для начинающих</h2>
<p>Освоить макросы можно даже без опыта программирования — достаточно понимать логику Excel и немного попрактиковаться. Главное — начинать постепенно, переходя от простых действий к написанию коротких процедур.</p>
<h3 id="heading-3-35">Как научиться: пошагово</h3>
<ol>
<li>Начните с макрорекордера — он покажет, как каждое действие превращается в строку кода.</li>
<li>Откройте редактор VBA и посмотрите, что записалось. Попробуйте изменить один параметр — цвет, диапазон или формат.</li>
<li>Освойте базовые конструкции: <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">If</code>, <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">For</code>, <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">MsgBox</code>. Даже три-четыре таких команды дают огромный простор для автоматизации.</li>
<li>Развивайтесь на практике — берите типовые задачи и превращайте их в сценарии.</li>
</ol>
<h3 id="heading-3-36">Рекомендуемые ресурсы</h3>
<ul>
<li>курсы <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/courses" rel="noopener noreferrer" target="_blank">https://ru.hexlet.io/courses</a>;</li>
<li>книга «Excel VBA Programming For Dummies»;</li>
<li>тематические форумы и блоги.</li>
</ul>
<h3 id="heading-3-37">Ошибки новичков</h3>
<ul>
<li>копирование чужого кода без понимания логики;</li>
<li>отсутствие комментариев и структуры;</li>
<li>использование абсолютных ссылок там, где нужны относительные;</li>
<li>сохранение макросов в формате .xlsx, из-за чего код теряется.</li>
</ul>
<h2 id="heading-2-38">Заключение</h2>
<p>Макросы — это не просто вспомогательная функция Excel, а полноценный инструмент повышения эффективности. Они позволяют автоматизировать повторяющиеся процессы, стандартизировать отчёты и сократить количество ошибок. Освоив основы VBA, можно создавать сценарии, которые экономят часы и дни рутинных операций. Даже базовые знания открывают возможности: от форматирования до интеграции разных программ Office.</p>
<p>А для тех, кто работает с данными ежедневно, макрокоманды становятся частью профессиональной компетенции — умением быстро решать задачи, которые другим требуют десятков кликов.</p></div><div class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-inline-start:auto" class="m_4081bf90 mantine-Group-root"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-calendar "><path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12"></path><path d="M16 3v4"></path><path d="M8 3v4"></path><path d="M4 11h16"></path><path d="M11 15h1"></path><path d="M12 15v3"></path></svg><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-inherit="true">3 месяца назад</p></div><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-inherit="true">Nikolai Gagarinov</p></div></div></div></div></div><div style="margin-bottom:var(--mantine-spacing-xl);padding:var(--mantine-spacing-lg)" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true" id="answer-3063"><div style="--group-gap:calc(1.125rem * var(--mantine-scale));--group-align:stretch;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;font-size:var(--mantine-font-size-h1);font-weight:lighter;text-align:center" class="m_6d731127 mantine-Stack-root">0<a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/qna/glossary/questions/chto-takoe-makros/answers/3063/vote"><div style="--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div></a><div style="--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-check "><path d="M5 12l5 5l10 -10"></path></svg></div></div><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;width:100%;min-width:0rem" class="m_6d731127 mantine-Stack-root"><div style="margin-bottom:auto" class="m_d08caa0 mantine-Typography-root"><p>Макрос - это последовательность команд или операций, которые выполняются автоматически. В программировании макросы используются для упрощения написания кода и уменьшения количества повторяющихся фрагментов. Макросы могут быть определены на разных уровнях абстракции, от простых однострочных операций до сложных процедур, состоящих из десятков или сотен строк кода.</p></div><div class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-inline-start:auto" class="m_4081bf90 mantine-Group-root"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-calendar "><path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12"></path><path d="M16 3v4"></path><path d="M8 3v4"></path><path d="M4 11h16"></path><path d="M11 15h1"></path><path d="M12 15v3"></path></svg><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-inherit="true">2 года назад</p></div><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-inherit="true">Елена Редькина</p></div></div></div></div></div><style data-mantine-styles="inline">.__m__-_R_4bbdiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_4bbdiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-top:var(--mantine-spacing-xl);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_4bbdiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/local-environment-automation?promo_name=programs_list&promo_position=qna_question&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">1 месяц</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Автоматизация локального окружения</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Освоите настройку окружения с dev-инструментами</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk3MSwicHVyIjoiYmxvYl9pZCJ9fQ==--126b25f39a57b0fdbd31895236a8d1da05b80ac4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Server-amico.png" alt="Автоматизация локального окружения" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/ansible-deploy?promo_name=programs_list&promo_position=qna_question&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">1 месяц</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Автоматизация деплоя</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите CI/CD и автоматизацию развёртывания</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY0NSwicHVyIjoiYmxvYl9pZCJ9fQ==--f34b449529f04fd8689092f66f9653c47c7e1f58/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Server%20status-amico.png" alt="Автоматизация деплоя" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/infrastructure-automation?promo_name=programs_list&promo_position=qna_question&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">1 месяц</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Автоматизация инфраструктуры</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Навык управления инфраструктурой с Terraform</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk3NywicHVyIjoiYmxvYl9pZCJ9fQ==--bc5ef27286509b0ecf2f8ae6cbdce2376db3d394/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/500%20Internal%20Server%20Error-cuate.png" alt="Автоматизация инфраструктуры" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/frontend-testing-react?promo_name=programs_list&promo_position=qna_question&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">2 месяца</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Автоматизация тестирования фронтенда</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Освоите автотесты на JavaScript для браузерных приложений</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkzMiwicHVyIjoiYmxvYl9pZCJ9fQ==--7e1956d5683226b3f32f57abb931d34a6639970b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/QA%20engineers-rafiki.png" alt="Автоматизация тестирования фронтенда" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/php-phpunit-testing?promo_name=programs_list&promo_position=qna_question&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">4 месяца</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Автоматизация тестирования на PHP</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Навык тестирования на PHP</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkzNSwicHVyIjoiYmxvYl9pZCJ9fQ==--06c469e64c9b6c8429a6a01edd20041dae30ce13/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Software%20code%20testing-bro.png" alt="Автоматизация тестирования на PHP" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses?promo_name=programs_list&promo_position=qna_question&promo_creative=catalog_card&promo_type=card"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-bottom:var(--mantine-spacing-md);font-size:var(--mantine-font-size-h3)" class="m_8a5d1357 mantine-Title-root" data-order="2" data-responsive="true">Каталог</h2><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Полный список доступных курсов по разным направлениям</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="/vite/assets/development-BVihs_d5.png" alt="Orientation"/></div></div></div></a></div></div></div></div></div></div><style data-mantine-styles="inline">.__m__-_R_5diub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_5diub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}@media(min-width: 62em){.__m__-_R_5diub_{--col-flex-grow:auto;--col-flex-basis:33.333333333333336%;--col-max-width:33.333333333333336%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_5diub_ mantine-visible-from-md"><div style="margin-bottom:var(--mantine-spacing-xl);padding:var(--mantine-spacing-xl);background:var(--mantine-color-blue-0);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Похожие вопросы</p><ul class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/qna/glossary/questions/chto-takoe-pandas">Pandas</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/qna/glossary/questions/chto-takoe-1c-buhgalteriya">1C:Бухгалтерия</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/qna/glossary/questions/chto-takoe-1c-predpriyatie">1C:Предприятие</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/qna/glossary/questions/chto-takoe-a-b-testirovanie">A/B-тестирование</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/qna/glossary/questions/chto-takoe-agile">Agile</a></span></div></li></ul></div><div style="justify-content:end;margin-top:0rem;position:sticky;top:calc(5rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_1bddiub_"><div tabindex="0" style="cursor:pointer"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses_devops?promo_name=program_category&promo_position=qna_question&promo_creative=card&promo_type=card"><div style="background-color:var(--mantine-color-default);border:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);padding-inline:var(--mantine-spacing-xl);padding-top:var(--mantine-spacing-xl);padding-bottom:var(--mantine-spacing-xs);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Курсы по DevOps</p></div><img class="m_9e117634 mantine-Image-root" src="/vite/assets/development-BVihs_d5.png"/><p style="margin-bottom:var(--mantine-spacing-xs);text-align:right" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></a></div></div></div></div></div></div></div>
</main>
<footer class="bg-dark fw-light text-light px-3 py-5">
<div class="row small">
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 mb-3">Хекслет</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/about">О нас</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/testimonials">Отзывы</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://b2b.hexlet.io" role="button">Корпоративное обучение</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/blog">Блог</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/qna">Вопросы и ответы</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/glossary">Глоссарий</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://help.hexlet.io" data-target="_blank" role="button">Справка</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" target="_blank" rel="noopener noreferrer" href="/map">Карта сайта</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 fw-normal mb-3">Направления</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_devops">DevOps
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_data_analytics">Аналитика
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_backend_development">Бэкенд
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_programming">Программирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_testing">Тестирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_front_end_dev">Фронтенд
</a></li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Профессии</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/go">Go-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/java">Java-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python">Python-разработчик </a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/data-analytics">Аналитик данных</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/qa-engineer">Инженер по ручному тестированию</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php">РНР-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/frontend">Фронтенд-разработчик</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Навыки</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python-django-developer">Django</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/docker">Docker</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php-laravel-developer">Laravel</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/postman">Postman</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-react-developer">React</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-rest-api">REST API в Node.js</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/spring-boot">Spring Boot</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/typescript">Typescript</a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-12 col-sm-4 col-md-2">
<div class="fs-4">
<ul class="list-unstyled d-flex">
<li class="me-3">
<a aria-label="Telegram" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://t.me/hexlet_ru"><span class="bi bi-telegram"></span>
</a></li>
<li>
<a aria-label="Youtube" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://www.youtube.com/user/HexletUniversity"><span class="bi bi-youtube"></span>
</a></li>
</ul>
</div>
<div class="mb-2 d-flex flex-column">
<a class="link-light text-decoration-none" rel="nofollow" href="mailto:support@hexlet.io">support@hexlet.io</a>
<a class="link-light text-decoration-none py-2" target="_blank" href="https://t.me/hexlet_help_bot">t.me/hexlet_help_bot</a>
</div>
<ul class="list-unstyled d-flex">
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://hexlet.io/locale/switch?new_locale=en" data-target="_self" role="button"><span class="my-auto">EN</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 opacity-100 external-link" rel="nofollow" data-href="https://ru.hexlet.io/locale/switch?new_locale=ru" data-target="_self" role="button"><span class="my-auto">RU</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://kz.hexlet.io/locale/switch?new_locale=kz" data-target="_self" role="button"><span class="my-auto">KZ</span>
</span></li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<ul class="list-unstyled fs-4">
<li class="mb-3">
<a class="link-light text-decoration-none" href="tel:8%20800%20100%2022%2047">8 800 100 22 47</a>
<span class="d-block opacity-50 small">бесплатно по РФ</span>
</li>
<li>
<a class="link-light text-decoration-none" href="tel:%2B7%20495%20085%2021%2062">+7 495 085 21 62</a>
<span class="d-block opacity-50 small">бесплатно по Москве</span>
</li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<div class="small mb-3">Образовательные услуги оказываются на основании Л035-01298-77/01989008 от 14.03.2025</div>
<ul class="list-unstyled small">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/legal">Правовая информация</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/offer">Оферта</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/license">Лицензия</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/contacts">Контакты</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-12 col-md-4 small">
<div class="mb-2">
<div>ООО «<a href="/" class="text-decoration-none link-light">Хекслет Рус</a>»</div>
<div>108813 г. Москва, вн.тер.г. поселение Московский,</div>
<div>г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3</div>
<div>ОГРН 1217300010476</div>
<div>ИНН 7325174845</div>
</div>
<hr>
<div>АНО ДПО «<a href="/" class="text-decoration-none link-light">Учебный центр «Хекслет</a>»</div>
<div>119331 г. Москва, вн. тер. г. муниципальный округ</div>
<div>Ломоносовский, пр-кт Вернадского, д. 29</div>
<div>ОГРН 1247700712390</div>
<div>ИНН 7736364948</div>
</div>
</div>
</footer>
<div id="root-assistant-offcanvas"></div>
<script src="/vite/assets/assistant-CdBlNCiQ.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-nkZBEvfU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/MarkdownBlock-DbyKWoR_.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/shiki-V011pkdv.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-XR8Qr8kR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dist-GCHh59xr.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useIsomorphicEffect-HJ6VK0D3.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-KSp6QbZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/classnames-l6ipYlLR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/debounce-jMQ_Cf4f.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v67327c56f0bb4ef8b305cae61679db8f1769101564043" integrity="sha512-rdcWY47ByXd76cbCFzznIcEaCN71jqkWBBqlwhF1SY7KubdLKZiEGeP7AyieKZlGP9hbY/MhGrwXzJC/HulNyg==" data-cf-beacon='{"version":"2024.11.0","token":"d11015b65d11429ea6b4a2ef37dd7e0b","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>