Боты и автоматизация

Учебник Автоматизация Excel на VBA для начинающих

15 уроков · 5 разделов · бесплатно, без регистрации

Как перестать делать одно и то же руками: макросы и VBA для тех, кто живёт в Excel — без программистского прошлого.

Курс «Автоматизация Excel на VBA» состоит из 5 разделов и 15 уроков: Первые макросы, Язык VBA, Ячейки, диапазоны, листы, Практические задачи и Надёжность и удобство. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Первые макросы

    1. Зачем макросы и что такое VBA

      Что такое макрос и язык VBA простыми словами, как посчитать окупаемость автоматизации и какую рутину в Excel автоматизировать стоит, а какую — нет.

    2. Запись макроса и чтение кода

      Как записать макрос мышкой в Excel, открыть и прочитать полученный код VBA, почему рекордер пишет Select и Activate и как переписать такой код по-человечески.

    3. Редактор VBA и безопасность макросов

      Редактор VBA по Alt+F11: окно проекта, модули, Immediate и Option Explicit. Формат .xlsm, настройки безопасности макросов и почему файлы из интернета опасны.

  2. 2 Язык VBA

    1. Переменные и типы

      Переменные в VBA: Dim и типы Long, String, Double, Boolean, Range, Variant. Зачем нужен Option Explicit, что такое Set и область видимости переменных.

    2. Условия и циклы

      Условия и циклы в VBA: If, ElseIf, Select Case, циклы For, For Each, Do While, досрочный выход и главный приём — обход строк таблицы через End(xlUp).

    3. Процедуры Sub и функции Function

      Sub и Function в VBA: чем отличаются, как передавать параметры (ByVal и ByRef), как вернуть значение, что такое UDF и как разбить макрос-простыню на понятные куски.

  3. 3 Ячейки, диапазоны, листы

    1. Range и Cells: работа с ячейками

      Как в VBA обращаться к ячейкам Excel: Range и Cells, смещение Offset и Resize, чтение и запись значений, разница между Value, Text и Formula.

    2. Как писать без Select и Activate

      Почему записанный макрос с Select работает медленно и ненадёжно и как переписать его на прямые ссылки на объекты: было/стало, замер скорости, типичные ошибки.

    3. Листы и книги

      Worksheets, ActiveSheet, ThisWorkbook и ActiveWorkbook в VBA: как надёжно обратиться к нужному листу и книге и как найти последнюю заполненную строку через End(xlUp).

  4. 4 Практические задачи

    1. Сборка отчёта из нескольких листов

      Макрос VBA обходит все листы книги, собирает данные в один сводный лист и проставляет итоги. Полный код с разбором: End(xlUp), Resize, Formula, ScreenUpdating.

    2. Поиск, фильтрация и обработка данных

      Range.Find и FindNext, AutoFilter и выгрузка видимых строк, RemoveDuplicates, условное форматирование из кода — типовые операции VBA с готовыми примерами.

    3. Пользовательские функции (UDF)

      Как написать свою функцию для формул Excel на VBA: синтаксис Function, Optional-аргументы, CVErr, ограничения UDF и когда вместо неё нужен макрос.

  5. 5 Надёжность и удобство

    1. Обработка ошибок

      On Error GoTo и рабочий шаблон обработчика в VBA, почему On Error Resume Next опасен, понятные сообщения пользователю и проверка входных данных.

    2. Скорость: почему макрос тормозит

      Почему макрос VBA работает минуты: ScreenUpdating, Calculation = xlManual, чтение диапазона в массив вместо цикла по ячейкам и замер времени через Timer.

    3. Кнопки, формы и запуск макроса

      Кнопка на листе и назначение макроса, UserForm для ввода параметров, события листа Worksheet_Change и обязательный EnableEvents = False.