Учебник для начинающих по написанию макросов VBA в Excel (и почему вы должны обучаться)
Учебник для начинающих по написанию макросов VBA в Excel (и почему вы должны обучаться)
Макросы Excel могут сберечь кучу времени за счет автоматизации нередко применяемых действий Excel . Но макросы по сути достаточно ограничены. С инвентарем записи просто ошибиться, а процесс записи неудобен.
Внедрение VBA для сотворения макросов дает для вас еще больше способностей. Вы сможете буквально сказать Excel, что созодать и как это создать. Вы также получите доступ к еще большему количеству функций и способностей. Если вы часто используете Excel, стоит научиться создавать макросы VBA.
Что такое VBA?
VBA — это Visual Basic для приложений , язык программирования, который вы сможете применять в почти всех приложениях Microsoft. Visual Basic — это язык программирования, а VBA — его версия для определенного приложения. (Microsoft закончила выпуск Visual Basic еще в 2008 году, но VBA продолжает развиваться).
К счастью для непрограммистов, VBA весьма прост, и интерфейс, который вы используете для редактирования, дает огромную помощь. В почти всех командах вы будете применять всплывающие подсказки и автоматические дополнения, которые посодействуют для вас стремительно запустить ваш скрипт.
Тем не наименее, VBA просит времени, чтоб привыкнуть.
Достоинства макросов VBA в Excel
Если VBA труднее, чем запись макроса, для чего для вас его применять? Маленький ответ: вы получаете еще больше способностей от макросов VBA.
Заместо того, чтоб щелкать по электрической таблице и записывать эти клики, вы сможете получить доступ ко всему диапазону функций и способностей Excel. Для вас просто необходимо знать, как их применять.
И как вы освоитесь с VBA, вы можете созодать все, что сможете, в обыкновенном макросе за еще наименьшее время. Результаты также будут наиболее прогнозируемыми, так как вы буквально указываете Excel , что созодать. Там нет никакой двусмысленности совершенно.
Создав макрос VBA, его просто сохранить и поделиться им, чтоб любой мог пользоваться им. Это в особенности полезно, когда вы работаете со почти всеми людьми, которым необходимо созодать то же самое в Excel.
Давайте поглядим на обычный макрос VBA, чтоб узреть, как он работает.
Пример макроса VBA в Excel
Давайте поглядим на обычный макрос. Наша электрическая таблица содержит имена служащих, номер магазина, в каком работают сотрудники, и их квартальные реализации.
Этот макрос добавит квартальные реализации из всякого магазина и запишет эти итоги в ячейки электрической таблицы (если вы не убеждены, как получить доступ к диалогу VBA, ознакомьтесь с нашим пошаговым управлением по VBA тут ):
Это может показаться длинноватым и сложным, но мы разберем его, чтоб вы могли узреть отдельные элементы и незначительно выяснить о основах VBA.
Объявление Sub
В начале модуля у нас есть «Sub StoreSales ()». Это описывает новейшую подпрограмму под заглавием StoreSales.
Вы также сможете определять функции — разница в том, что функции могут возвращать значения, а подпрограммы не могут (если вы знакомы с иными языками программирования, подпрограммы эквивалентны способам). В этом случае нам не надо возвращать значение, потому мы используем подпрограмму.
В конце модуля у нас есть «End Sub», который докладывает Excel, что мы окончили с сиим макросом VBA.
Объявление переменных
Все 1-ые строчки кода в нашем скрипте начинаются с «Dim». Dim — это команда VBA для объявления переменной.
Таковым образом, «Dim Sum1» делает новейшую переменную с именованием «Sum1». Но нам необходимо сказать Excel, что же это все-таки за переменная. Нам необходимо избрать тип данных. В VBA существует много различных типов данных, полный перечень которых можно отыскать в справочных документах Microsoft .
Так как наш макрос VBA будет работать с валютами, мы используем тип данных Currency.
Оператор «Dim Sum1 As Currency» показывает Excel сделать новейшую переменную Currency с именованием Sum1. Любая переменная, которую вы объявляете, обязана иметь оператор «As», чтоб сказать Excel ее тип.
Начиная для цикла
Циклы являются одними из самых массивных вещей, которые вы сможете сделать на любом языке программирования. Если вы не знакомы с циклами, ознакомьтесь с сиим разъяснением циклов Do-While. циклы В этом примере мы используем цикл For, который также рассматривается в статье.
Ах так смотрится цикл:
Это гласит Excel, чтоб перебирать ячейки в обозначенном спектре. Мы употребляли объект Range. , который является специфичным типом объектов в VBA. Когда мы используем его таковым образом — Range («C2: C51») — это гласит Excel, что мы заинтересованы в этих 50 ячейках.
«Для всякого» гласит Excel, что мы собираемся что-то создать с каждой ячейкой в спектре. «Последующая ячейка» идет опосля всего, что мы желаем создать, и гласит Excel начать цикл с начала (начиная со последующей ячейки).
У нас также есть последующее утверждение: «Если IsEmpty (Cell), то Exit For».
Сможете ли вы угадать, что он делает?
Примечание. Строго говоря, внедрение цикла «В то время как» могло бы быть наилучшим выбором. Но ради обучения я решил применять цикл For с выходом.
If-Then-Else Заявления
Ядро этого определенного макроса находится в операторах If-Then-Else. Вот наша последовательность условных операторов:
По большей части вы, возможно, сможете додуматься, что делают эти утверждения. Может быть, вы не знакомы с ActiveCell.Offset. «ActiveCell.Offset (0, -1)» показывает Excel посмотреть на ячейку, которая находится в одном столбце слева от активной ячейки.
В нашем случае это гласит Excel, чтоб обратиться к столбцу номера магазина. Если Excel находит 1 в этом столбце, он берет содержимое активной ячейки и добавляет его в Sum1. Если он находит 2, он добавляет содержимое активной ячейки в Sum2. И так дальше.
Excel проходит все эти утверждения по порядку. Если условный оператор операторы операторы доволен, он завершает утверждение Тогда. Если нет, он перебегает к последующему ElseIf. Если он дойдет до конца и ни одно из критерий не будет выполнено, он не предпримет никаких действий.
Композиция цикла и условных выражений — это то, что движет сиим макросом. Цикл предписывает Excel пройти через каждую ячейку в выделении, а условные выражения докладывают ему, что созодать с данной для нас ячейкой.
Запись значений ячеек
В конце концов, мы можем записать результаты наших расчетов в ячейки. Вот строчки, которые мы используем для этого:
Используя «.Value» и символ равенства, мы устанавливаем в каждой из этих ячеек значение одной из наших переменных.
Вот и все! Мы сообщаем Excel, что окончили написание этого Sub с «End Sub», и макрос VBA завершен.
Когда мы запускаем макрос при помощи клавиши « Макросы» на вкладке « Разраб », мы получаем наши суммы:
Собираем строй блоки VBA в Excel
Когда вы в первый раз поглядите на макрос VBA выше, он смотрится достаточно сложным. Но опосля разбиения его на составные части логика становится ясной. Как и хоть какой язык сценариев, требуется время, чтоб привыкнуть к синтаксису VBA.
Но с практикой вы увеличите собственный словарный припас VBA и можете писать макросы резвее, поточнее и с еще большей мощностью, чем вы могли бы когда-либо записывать.
Когда вы застряли, пуск поиска Гугл — это резвый метод получить ответы на ваши вопросцы VBA. А справочник Microsoft по VBA для Excel быть может полезен, если вы желаете изучить технический ответ.
Когда вы освоитесь с основами, вы сможете начать применять VBA для таковых вещей, как отправка электрических писем из Excel , экспорт задач Outlook. и отображение инфы о вашем ПК (Персональный компьютер — компьютер, предназначенный для эксплуатации одним пользователем)