Microsoft Excel · VBA
Excel VBA
Автоматизация Excel с помощью макросов и Visual Basic for Applications. Записывать и редактировать макросы, создавать процедуры и функции, программировать циклы, обрабатывать ошибки — и превратить рутину в кнопку.
16
ак. часов
7
модулей
80%
практика
на реальных задачах
на реальных задачах
Преподаватель · 5 500+ часов

Алексей Борисов · Excel-тренер
Для кого
Кому подойдёт этот курс
Аналитики и специалисты по данным
Умеют в Excel, но тратят часы на повторяющиеся операции. VBA — чтобы это делала программа.
Финансисты и бухгалтеры
Формируют ежемесячные отчёты вручную. После курса — кнопка запуска и 5 минут вместо 3 часов.
Администраторы и руководители
Хотят автоматизировать сбор данных из разных файлов, рассылки, сводки по отделам.
Программа
7 модулей · 16 ак. часов
01
Автоматическая запись макроса
2 ч
Использование макрорекордераАбсолютные и относительные ссылки при записиИсправление недостатков сгенерированного кода
02
Работа в редакторе Visual Basic. Основы VBA
3 ч
Создание проекта VBA, работа с модулямиСоздание, сохранение и запуск процедурыТипы данных, переменные, константыИнструкции If…Then…Else и Select Case
03
Программирование объектов Excel
3 ч
Объектно-ориентированное программированиеСвойства и методы WorkbookКоллекция Worksheets и объект WorksheetОбъект Range: свойства и методыКонструкция With…End With
04
Циклы — программирование многократных действий
3 ч
Цикл со счётчиком For…NextЦиклы с условием Do…LoopЦикл по объектам For Each…NextЦиклические операции с ячейками и листами
05
Пользовательские функции
2 ч
Создание процедуры FunctionИспользование функции в VBA и на рабочем листеРешение типичных задач автоматизации
06
Обработка ошибок. Отладка и тестирование
1,5 ч
Типы ошибокПроцедура обработки ошибок Run-timeОтладка и пошаговое тестирование
07
Защита проекта VBA. Автоматизация запуска
1,5 ч
Настройка уровней безопасностиЗащита проекта VBAПользовательские кнопки для запуска макросовИспользование событий рабочих книг и листов
Что внутри
Конструкции VBA, которые изучаете
Не абстрактная теория, а конкретный код — на курсе пишем и разбираем его на ваших макросах. Вот шесть конструкций, которые использую почти в каждом проекте.
Цикл по коллекции объектов (For Each…Next)
Редактор Visual Basic (Alt+F11) → модуль → процедура Sub
For Each ws In ThisWorkbook.Worksheets: ws.Range(«A1») = «Готово»: Next ws ← проходит по каждому листу книги, сколько бы их ни было
● Перебирает объекты коллекции по одному — не нужно знать их количество заранее
⚠ Удаление листа внутри цикла может сбить перебор — надёжнее собрать список заранее
✓ Стандартный способ обработать «все листы», «все ячейки диапазона», «все открытые книги»
Сокращённая запись обращений к объекту (With…End With)
Внутри процедуры Sub или Function
With Range(«A1»): .Value = 100: .Font.Bold = True: End With ← пять обращений к Range(«A1») сжаты в одно
● Excel один раз находит объект и дальше работает с ним напрямую — код короче и выполняется быстрее
⚠ Точка без объекта внутри блока всегда означает «объект из With» — легко перепутать при вложенных блоках
✓ Использую везде, где к одному объекту идёт больше двух обращений подряд
Обработка ошибок (On Error)
Начало и конец блока кода внутри процедуры
On Error Resume Next: Kill «старый_отчёт.xlsx»: On Error GoTo 0 ← если файла нет, ошибка не остановит макрос
● On Error GoTo 0 обязателен после Resume Next — иначе следующие реальные ошибки в процедуре будут молча проглатываться
⚠ Resume Next без возврата к GoTo 0 — частая причина, когда макрос «работает неправильно», а ошибки не видно
✓ Оборачиваю в него ожидаемые ситуации — не найден файл, лист, значение — а не любой сбой подряд
Пользовательская функция (Function…End Function)
Модуль, а не лист — Insert → Procedure → Function
Function НДС(Сумма As Double) As Double: НДС = Сумма * 0.2: End Function ← используется в VBA-коде и как обычная формула на листе
● Функция, объявленная в стандартном модуле, сразу доступна в строке формул листа как =НДС(A1)
⚠ Функция в модуле листа или книги (ThisWorkbook) на листе не видна — только в стандартном модуле
✓ Замена длинной формулы с вложенными ЕСЛИ на одно понятное имя, которое можно переиспользовать
Поиск последней заполненной ячейки (Range.End)
Внутри процедуры, вместо жёстко заданного номера последней строки
lastRow = Cells(Rows.Count, 1).End(xlUp).Row ← номер последней занятой строки в столбце A, сколько бы строк ни добавили
● Работает как Ctrl+стрелка вверх от самой нижней ячейки листа — надёжнее, чем UsedRange, при удалённых строках
⚠ Если весь столбец пуст, вернёт первую строку листа — код нужно проверять на этот случай
✓ Использую в каждом макросе, где диапазон данных меняется день ото дня, а не фиксирован
Отключение перерисовки экрана (ScreenUpdating)
Начало и конец процедуры
Application.ScreenUpdating = False: ‘…код…: Application.ScreenUpdating = True ← экран не мигает при обработке тысяч строк
● Ускоряет макрос в разы на больших объёмах — Excel не тратит время на перерисовку между операциями
⚠ Забыли включить обратно в конце — Excel останется «замороженным» до перезапуска или ручного включения в настройках
✓ Ставлю в начало любого макроса, который трогает больше пары сотен ячеек
Результат
Что участники смогут после курса
Записывать и редактировать макросы через рекордер и вручную
Создавать процедуры и пользовательские функции
Программировать циклы для обработки массивов данных
Работать с объектами Excel: книги, листы, диапазоны
Обрабатывать ошибки и отлаживать код
Автоматизировать сбор данных из нескольких файлов и отправку отчётов
Форматы
Как проходит обучение
Очно на площадке
Провожу у вас в офисе. Группы до 20 человек.
Онлайн
Телемост, Дион, СберДжаз, КТолк или ваша платформа. Запись занятия.
Гибрид
Часть группы очно, часть удалённо.
Преподаватель
Кто ведёт

Алексей Борисов
Корпоративный тренер · Excel, ИИ, автоматизацияПреподаю Excel с 2010 года. По Excel — 86 курсов, 3 500+ часов. Веду Power Query, Power Pivot, VBA, финансовое моделирование. Сертификат MOS Excel Expert (1000/1000 баллов).
5 500+часов
86курсов Excel
60+клиентов
СберX5 RetailМГУФин. университетМГТУ СтанкинSynergyГосдумаЦБ РФ
Клиенты
Кому уже проводил обучение
Центральный банк РФ, Государственная Дума РФ, Министерство финансов РФ, Минэкономразвития России, ФГБУ ФЦАО, ОСФР Москва и МО, ФОМС / МГФОМС, КСП Ленинградской области
Финансовая академия при Правительстве РФ, Финансовый университет при Правительстве РФ, ВАВТ Минэкономразвития, Университет Синергия, МГТУ Станкин, Гимназия Примакова, Школа стартапов Сколково, Нетология, АНО ДПО Школа менеджмента (СПб)
ПАО Россети Московский регион, ЛУКОЙЛ-Технологии, РН-Карт (Роснефть), ГазПромНефть, ОНУТЦ Газпром
ВСМПО-АВИСМА, Полиметалл УК, Моторика, НПП КЛАСС, ООО ЮИК, Флюид-Лайн
СИБИНТЕК-СОФТ, IBS, Концерн Телематика, РокетГрупп, Банк Национальный стандарт, Деловая среда (Сбер)
ЛСР Управляющая компания, РЕЙНА-ТУР НТВ, ОВК М Групп
Нацпроект Малое и среднее предпринимательство, Нацпроект Содействие занятости, Малый бизнес Москвы, Центр Мой бизнес Тверской области
60+
организаций
7
отраслей
10+
городов
с 2010
года
Следующий шаг Смежные курсы — Power Query, Power Pivot, Excel Эксперт.
Траектория
Куда расти дальше
Вопросы
Частые вопросы
Нужен ли опыт программирования?
Нет. Курс начинается с нуля — с записи макросов кнопкой. Базовые навыки Excel достаточны.
Какая версия Excel?
Excel 2016 и новее, включая 365. VBA совместим со всеми версиями.
Нужен ли ноутбук?
Для очного — да. Для онлайн — компьютер с веб-камерой.
Можно ли адаптировать программу?
Да, под задачи вашей команды. Обсудим перед стартом.
Как проходит оплата?
По договору, ЭДО, закрывающие документы. Работаю как ИП.