Управление
#статьи

VBA в Excel: объясняем главные понятия и принципы работы

Статья для тех, кто хочет разобраться в языке макросов. Рассказали, что такое VBA и для чего он нужен.

Иллюстрация: Оля Ежак для Skillbox Media

Помог разобраться с VBA

Ренат Шагабутдинов

Шеф-редактор в издательстве МИФ и сертифицированный эксперт по Excel. Спикер курса Skillbox «​​Excel + „Google Таблицы“ с нуля до PRO».

VBA — внутренний язык программирования для программ Microsoft Office. С помощью него пишут макросы — мини-программы, которые одним нажатием кнопки выполняют в документе сразу несколько действий.

В статье рассказываем, как VBA используют в Excel и как он работает. Материал будет полезен всем, кто активно пользуется Excel и хочет понять, как устроено программирование внутри него.

В статье нет подробных инструкций по программированию с помощью VBA. Мы объясняем принципы работы VBA, которые дадут общее представление об этом языке.

Что такое VBA

VBA (Visual Basic for Applications) — язык программирования, упрощённая версия языка Visual Basic.

Его разработала компания Microsoft специально для линейки своих продуктов — Excel, Word, PowerPoint, Access, Outlook. Также VBA используют и в других программах — например, в AutoCAD, SolidWorks и CorelDRAW.

VBA нужен для того, чтобы расширить возможности этих программ. Например, чтобы добавить новые функции, которые не предусмотрены базовыми версиями программ, но регулярно нужны пользователю. Или чтобы автоматизировать повторяющиеся действия.

С помощью VBA создают маленькие программы — макросы, которые выполняют заданную последовательность действий в программах.

Например, можно написать макрос, который отсортирует данные в таблице по вашим правилам, удалит дублирующиеся значения и сформирует отчёт. Это удобно, когда нужно выполнять подобные задачи регулярно. VBA сделает их автоматически, сэкономит время и уменьшит риск ошибок.

Для чего нужен VBA в Excel

Чаще всего VBA в Excel используют, чтобы автоматизировать повторяющиеся действия, расширить возможности электронных таблиц и взаимодействовать с другими программами MS Office.

Автоматизация повторяющихся действий. Допустим, пользователю необходимо создать оглавление для Excel-файла. Это можно сделать вручную: создать новый лист в начале документа, выписать на него названия всех остальных листов и поставить ссылки на эти листы.

Если таких листов не много, это можно делать и вручную. Но если листов больше — например, 15 — или если оглавления нужно создавать для каждого Excel-файла, действия лучше автоматизировать, чтобы оглавление для любого числа листов появлялось после нажатия одной кнопки. С помощью обычных функций Excel это сделать невозможно. В таких случаях используют язык VBA и макросы.

Расширение возможностей Excel. С помощью VBA в Excel можно добавлять пользовательские функции, которых нет в стандартном приложении. Например, можно создать функцию, которая считает количество уникальных значений, — такой функции в Excel нет.

Взаимодействие с другими программами Microsoft. Например, VBA позволяет объединить данные файлов разных программ MS Office. С его помощью можно перенести данные из текстового документа, созданного в Word, в файл Excel и настроить связь между ними. Это значит, что, если пользователи поменяют данные в Word-файле, эти данные сразу обновятся и в Excel.

С развитием Excel VBA стали использовать реже. Потому что, хотя он довольно прост в изучении, это всё-таки язык программирования. Чтобы им пользоваться, нужно изучить синтаксис языка, понять объектную модель Excel и так далее.

Сейчас большинство задач, для которых раньше использовали макросы, можно решить с помощью встроенных в Excel надстроек Power Query и Power Pivot, а также новых функций, работающих с динамическими массивами (УНИК/UNIQUE, СОРТ/SORT, ФИЛЬТР/FILTER и других). Программирование макросов с помощью VBA применяют только для решения более сложных или уникальных задач.

Как работает VBA в Excel

Общий принцип работы таков. Пользователь пишет на языке VBA последовательность действий, которую нужно выполнить внутри программы. Получается макрос. Когда требуется выполнить заданную последовательность, этот макрос запускают. Это делают сочетанием клавиш или кликом по кнопке меню — в зависимости от того, что выберет пользователь при создании макроса. Ещё макросы могут запускаться по событию — например, при открытии книги Excel.

Макрос можно создать тремя способами:

  • записать с помощью макрорекордера;
  • написать код самостоятельно в редакторе Visual Basic в Excel;
  • скопировать готовый код — например, из разных справочников или форумов в интернете — и адаптировать его к своим задачам.

Запись макроса с помощью рекордера работает так. Пользователь, находясь в Excel-файле, нажимает кнопку записи и выполняет все действия, которые хочет включить в макрос, — например, создаёт оглавление.

Подробно о том, как записать макрос с помощью рекордера, мы рассказывали в этой статье. В ней есть пошаговая инструкция со скриншотами. С её помощью создать макрос сможет даже начинающий пользователь Excel.

Окно для записи макроса в Excel
Скриншот: курс Skillbox «​​Excel с нуля до PRO»

После остановки записи Excel «переводит» каждое выполненное действие на язык VBA и выдаёт алгоритм в виде кода. При необходимости пользователь может зайти в редактор Visual Basic (Alt + F11) и отредактировать полученный код вручную — дописать самостоятельно или удалить некоторые фрагменты.

В этом же редакторе пишут код с нуля или вставляют готовые фрагменты и дорабатывают их.

Так выглядит редактор Visual Basic в Excel
Скриншот: курс Skillbox «​​Excel с нуля до PRO»

Чаще всего пользователи комбинируют все три способа создания макроса. Например, чтобы не писать код с нуля, они начинают с записи макрорекордером или вставляют в редактор готовые части кода. А уже потом «допиливают» код под свои потребности.

Ещё для написания макросов удобно использовать нейросети. Например, можно подробно описать свою задачу в ChatGPT, и он выдаст готовый код. В некоторых случаях полученный код можно использовать даже без доработки.

Нужно ли быть программистом, чтобы разобраться с VBA в Excel

Язык VBA довольно дружелюбен по отношению к пользователю. Например, он автоматически выставляет регистр для названий свойств, методов и команд — в отличие от языка M, встроенного в Power Query. Также в нём много инструментов для поиска ошибок в коде и для его отладки.

Человек, который хорошо ориентируется в Excel, может легко освоить VBA, даже если до этого никогда не программировал. Например, с помощью инструмента для записи макросов. Он несовершенен, но позволяет посмотреть, как называются разные действия программы на языке VBA.

Ещё в работе с макросами помогает то, что в интернете можно найти много готовых примеров кода, которые можно изучать и адаптировать к своим задачам.

Главное о VBA в 5 пунктах

  • VBA — язык программирования, созданный компанией Microsoft. С помощью VBA записывают макросы, которые выполняют заданную последовательность действий в программах после нажатия кнопки меню или сочетания клавиш.
  • VBA используют, чтобы автоматизировать повторяющиеся действия пользователей, расширять возможности программ и объединять данные файлов разных программ MS Office.
  • В Excel для решения большинства задач, которые раньше выполняли с помощью макросов, сейчас можно использовать надстройки Power Query и Power Pivot.
  • Можно написать код на языке VBA с нуля, можно записать его с помощью макрорекордера, а можно взять готовый и при необходимости доработать.
  • VBA — довольно простой язык. Если у человека нет опыта программирования, но он хорошо разбирается в Excel, освоить этот язык будет легко.

Как узнать больше об автоматизации задач в Excel

  • Для того чтобы автоматизировать задачи в Excel, используют макросы. Это алгоритмы действий, записанные в одну команду. С помощью них можно выполнить несколько шагов в Excel, нажав одну кнопку в меню или сочетание клавиш. В Skillbox Media есть инструкция по работе с макросами для новичков
  • Для обработки больших объёмов данных в Excel есть надстройка Power Query. С помощью неё можно выгружать таблицы из источников разных форматов и приводить их к удобному для анализа виду. Рассказали об этом подробно в статье «Power Query в Excel: для чего это нужно и как работает. Инструкция со скриншотами».
  • Для дальнейшей работы с выгруженными данными — например, для того, чтобы связать их с данными других таблиц, создать удобные отчёты для анализа или базу данных, — в Excel есть надстройка Power Pivot. Больше о том, как ей пользоваться, — в этой статье Skillbox Media.
  • Для тех, кто хочет стать профессионалом в Excel, в Skillbox есть курс «Excel + „Google Таблицы“ с нуля до PRO». Он подойдёт как новичкам, которые хотят научиться работать в Excel с нуля, так и уверенным пользователям, которые хотят улучшить свои навыки. На курсе учат быстро делать сложные расчёты, визуализировать данные, строить прогнозы, работать с внешними источниками данных, создавать макросы и скрипты.
  • Кроме того, Skillbox даёт бесплатный доступ к записи онлайн-интенсива «Экспресс-курс по Excel: осваиваем таблицы с нуля за 3 дня». Он подходит для начинающих пользователей. На нём можно научиться создавать и оформлять листы, вводить данные, использовать формулы и функции для базовых вычислений, настраивать пользовательские форматы и создавать формулы с абсолютными и относительными ссылками.

Изучаете Excel? Посмотрите эти инструкции Skillbox Media

Учитесь и пробуйте новое — бесплатно

Выберите курс Skillbox с бесплатным доступом:

Смотреть все
Научитесь: Excel + Google Таблицы с нуля до PRO Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована