Учебник для начинающих по написанию макросов 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 здесь ):

Sub StoreSales()
Dim Sum1 As Currency
Dim Sum2 As Currency
Dim Sum3 As Currency
Dim Sum4 As Currency
For Each Cell In Range('C2:C51')
Cell.Activate
If IsEmpty(Cell) Then Exit For
If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If
Next Cell

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

End Sub

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

Объявление Sub

В начале модуля у нас есть Sub StoreSales (). Это определяет новую подпрограмму StoreSales.

Вы также можете определять функции - разница в том, что функции могут возвращать значения, а подпрограммы - нет (если вы знакомы с другими языками программирования, подпрограммы являются эквивалентом методов). В этом случае нам не нужно возвращать значение, поэтому мы используем sub.

В конце модуля у нас есть «End Sub», который сообщает Excel, что мы закончили с этим макросом VBA.

Объявление переменных

Все первые строки кода в нашем скрипте начинаются с «Dim». Dim - это команда VBA для объявления переменной.

Таким образом, «Dim Sum1» создает новую переменную с именем «Sum1». Однако нам нужно сообщить Excel, что это за переменная. Нам нужно выбрать тип данных. В VBA есть много разных типов данных - вы можете найти полный список в справочной документации Microsoft .

Поскольку наш макрос VBA будет работать с валютами, мы используем тип данных Currency.

Оператор Dim Sum1 As Currency указывает Excel создать новую переменную Currency с именем Sum1. Каждая объявленная вами переменная должна иметь оператор «As», чтобы сообщить Excel ее тип.

Запуск цикла For

Циклы - это одна из самых мощных вещей, которые вы можете создать на любом языке программирования. Если вы не знакомы с циклами, ознакомьтесь с этим объяснением циклов Do-While. В этом примере мы используем цикл For, который также рассматривается в статье.

Вот как выглядит цикл:

For Each Cell in Range('C2:C51')
[a bunch of stuff]
Next Cell

Это говорит Excel, что нужно перебирать ячейки в указанном нами диапазоне. Мы использовали Объект диапазона , который представляет собой особый тип объекта в VBA. Когда мы используем его таким образом --- Range ('C2: C51') --- он сообщает Excel, что нас интересуют эти 50 ячеек.

«Для каждого» сообщает Excel, что мы собираемся что-то сделать с каждой ячейкой в ​​диапазоне. «Следующая ячейка» идет после всего, что мы хотим сделать, и сообщает Excel начать цикл с начала (начиная со следующей ячейки).

У нас также есть такой оператор: «Если IsEmpty (Cell) Then Exit For».

Вы можете догадаться, что он делает?

Примечание: Строго говоря, использование цикла while могло быть лучшим выбором . Однако ради обучения я решил использовать цикл For с выходом.

как найти IP-адрес для сервера minecraft

Утверждения If-Then-Else

Ядро этого конкретного макроса находится в операторах If-Then-Else. Вот наша последовательность условных операторов:

If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If

По большей части вы, вероятно, можете догадаться, что делают эти утверждения. Однако вы, возможно, не знакомы с ActiveCell.Offset. «ActiveCell.Offset (0, -1)» сообщает Excel, что нужно смотреть на ячейку, которая находится на один столбец слева от активной ячейки.

В нашем случае это говорит Excel, что нужно проконсультироваться со столбцом номера магазина. Если Excel находит в этом столбце 1, то он берет содержимое активной ячейки и добавляет его в Sum1. Если он находит 2, он добавляет содержимое активной ячейки в Sum2. И так далее.

Excel просматривает все эти утверждения по порядку. Если Условный оператор удовлетворен, он завершает оператор Then. В противном случае он переходит в следующий ElseIf. Если он дойдет до конца и ни одно из условий не будет выполнено, он не будет предпринимать никаких действий.

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

Запись значений ячеек

Наконец, мы можем записать результаты наших вычислений в ячейки. Вот строки, которые мы используем для этого:

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

С помощью '.Value' и знака равенства мы устанавливаем для каждой из этих ячеек значение одной из наших переменных.

Вот и все! Мы сообщаем Excel, что мы закончили писать эту подпрограмму с помощью «End Sub», и макрос VBA готов.

Когда мы запускаем макрос с Макросы кнопка в Разработчик tab получаем наши суммы:

Сборка строительных блоков VBA в Excel

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

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

Когда вы застряли, поиск в Google - это быстрый способ получить ответы на свои вопросы по VBA. А также Справочник Microsoft Excel VBA может быть полезным, если вы хотите найти в нем технический ответ.

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

ты можешь играть в ps3 на ps4?
Делиться Делиться Твитнуть Эл. адрес Вот почему ФБР выпустило предупреждение о вирусах-вымогателях Hive

ФБР вынесло предупреждение об особо опасном штамме программ-вымогателей. Вот почему вам нужно особенно опасаться программ-вымогателей Hive.

Читать далее
Похожие темы
  • Продуктивность
  • Таблица
  • Майкрософт Эксель
  • Microsoft Office 2016
  • Макросы
  • Учебники по кодированию
Об авторе Затем Олбрайт(Опубликовано 506 статей)

Данн - консультант по контент-стратегии и маркетингу, который помогает компаниям генерировать спрос и потенциальных клиентов. Он также ведет блог о стратегии и контент-маркетинге на dannalbright.com.

Ещё от Dann Albright

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться