Глава 5. Автоматизация VBA

Продвинутый модуль курса: от первой переменной VBA до макроса, который сам находит, сортирует, строит диаграмму и собирает сводную таблицу.

Краткий план раздела

После этого раздела ты сможешь:

  • объявлять переменные и применять операторы/встроенные функции VBA
  • писать условия, циклы, свои процедуры и функции, обрабатывать ошибки
  • обращаться из кода к книгам, листам, диапазонам и ячейкам
  • автоматизировать поиск, фильтрацию и сортировку кодом
  • строить диаграммы, работать с умными и сводными таблицами из кода
  • писать свои функции для ячеек листа (UDF) и отлаживать код по шагам
  • работать с массивами и коллекциями объектов, применять ReDim Preserve и For Each
  • открывать и закрывать книги из кода, читать и писать CSV-файлы, знать про обращение к базам данных
  • строить свою форму ввода (UserForm) с полями и кнопками, проверять их заполнение

📖 — тексты | 👀 — видео | ❓ — вопросы | 💻 — задания | ☝️ — обязательно | 🔽 — не обязательно

📖 Текстовые уроки

❓ Контрольные вопросы

💻 Задания

Итоги раздела

  • Dim объявляет переменную нужного типа; операторы и функции VBA похожи на формулы Excel
  • If/ElseIf, циклы For/Do, свои Sub/Function и On Error — базовый инструментарий кода
  • Workbook → Worksheet → Range/Cells — та же иерархия, что и вручную, только из кода
  • Find/Replace/AutoFilter/Sort автоматизируют рутину одной кнопкой вместо кликов
  • Shapes.AddChart2/ListObject/PivotTableWizard делают кодом то же, что руками в главах 3-4
  • Public Function в обычном модуле — готовая формула для ячейки; F9/F8 и окна Locals/Watch/Immediate находят, где код пошёл не так
  • массив хранит значения под одним именем (индексы с 0), коллекция — готовые объекты Excel; ReDim Preserve сохраняет данные при изменении размера, For Each перебирает коллекцию
  • Workbooks.Open открывает книгу и делает её ActiveWorkbook; ThisWorkbook — всегда книга с кодом; Split разбирает строку CSV на массив, Write # готовит файл для повторного чтения
  • UserForm собирают из элементов Toolbox; Show/Hide/Unload управляют показом, TextBox проверяют на пустоту, а ListBox/ComboBox — через ListIndex
Школа Виктора Комлева