Платформа VBA-программирование, которая работает почти во всех продуктах Microsoft Office, является одним из самых мощных инструментов, которые каждый может использовать для улучшения использования этих продуктов.
Это руководство по VBA для начинающих покажет вам, как добавить меню «Разработчик» в приложение Office, как войти в окно редактора VBA и как работают основные операторы и циклы VBA, чтобы вы могли начать использовать VBA в Excel, Word. , Powerpoint, Outlook и OneNote.
В этом руководстве по VBA используется последняя версия продуктов Microsoft Office. Если у вас более ранняя версия, вы можете увидеть некоторые отличия от скриншотов.
Как включить и использовать редактор VBA
В любом из продуктов Office, используемых в этом руководстве, вы можете заметить, что у вас нет упомянутого меню разработчика. Меню разработчика доступно только в Excel, Word, Outlook и Powerpoint. OneNote не предлагает инструмент для редактирования кода VBA изнутри приложения, но вы все равно можете использовать API OneNote для взаимодействия с OneNote из других программ Office.
Вы узнаете, как это сделать, в нашем новом расширенном руководстве по VBA.
Левый список включает все доступные меню и команды меню, доступные в этом приложении Office. В списке справа указаны те, которые доступны или активированы на данный момент.
Общие советы по программированию VBA для начинающих
Когда откроется редактор VBA, параметры навигации на левой панели в разных приложениях Office выглядят по-разному.
Это связано с тем, что доступные объекты, в которых можно разместить код VBA, зависят от того, какие объекты есть в приложении. Например, в Excel вы можете добавить код VBA в объекты книги или листа. В Word вы можете добавлять в документы код VBA. В Powerpoint только для модулей.
Поэтому не удивляйтесь разнообразию меню. Структура и синтаксис кода VBA одинаковы для всех приложений. Единственная разница заключается в объектах, на которые вы можете ссылаться, и действиях, которые вы можете выполнять над этими объектами с помощью кода VBA.
Прежде чем мы углубимся в различные объекты и действия, которые вы можете выполнять с ними с помощью кода VBA, давайте сначала рассмотрим наиболее распространенную структуру и синтаксис VBA, которые вы можете использовать при написании кода VBA.
Куда поместить код VBA
Когда вы находитесь в редакторе VBA, вам нужно использовать два раскрывающихся списка в верхней части окна редактирования, чтобы выбрать, к какому объекту вы хотите прикрепить код и когда вы хотите, чтобы код запускался.
р>Например, если в Excel вы выберете Рабочий лист и Активировать , код будет выполняться при каждом открытии рабочего листа.
Другие действия с листом, которые вы можете использовать для запуска кода VBA, включают изменение листа, его закрытие (деактивацию), запуск вычислений на листе и многое другое..
Когда вы добавляете код VBA в редактор, всегда размещайте код VBA в объекте и используйте правильное действие, которое вы хотите использовать для запуска этого кода.
Операторы VBA IF
Оператор IF работает в VBA так же, как и в любом другом языке программирования.
Первая часть оператора IF проверяет, истинно ли условие или набор условий. Эти условия могут быть объединены оператором И или ИЛИ, чтобы связать их вместе.
Одним из примеров может быть проверка того, находится ли оценка в электронной таблице выше или ниже «проходной» оценки, и присвоение статуса «зачет» или «не зачет» другой ячейке.
Если ячеек(2, 2) >75, то ячеек(2, 3) = «пройдено», иначе ячеек(2, 3) = «не пройдено»
Если вы не хотите, чтобы весь оператор располагался в одной строке, вы можете разделить его на несколько строк, добавив символ «_» в конце строк.
Если Ячейки(2, 2) >75 Тогда _
Ячейки(2, 3) = «Пройдено» Иначе _
Ячейки (2, 3) = «Не удалось»
Использование этого метода часто значительно упрощает чтение и отладку кода.
VBA для следующих циклов
Операторы IF отлично подходят для одиночных сравнений, как в приведенном выше примере просмотра одной ячейки. Но что, если вы хотите просмотреть весь диапазон ячеек и выполнить для каждой одну и ту же инструкцию IF?
В этом случае вам понадобится цикл FOR.
Для этого вам нужно будет использовать длину диапазона и перебрать эту длину по количеству строк, содержащих данные.
Для этого вам необходимо определить переменные диапазона и ячейки и пройти через них. Вам также необходимо определить счетчик, чтобы вы могли выводить результаты в соответствующую строку. Таким образом, в вашем коде VBA сначала будет эта строка.
Уменьшить число как диапазон, ячейку как диапазон
Уменьшить счетчик строк как целое число
Определите размер диапазона следующим образом.
Установить rng = Range(“B2:B7”)
rowCounter = 2
Наконец, вы можете создать цикл FOR, чтобы пройти через каждую ячейку в этом диапазоне и выполнить сравнение.
For Each cell In rngIf cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell
После запуска этого VBA-скрипт вы увидите результаты в реальной электронной таблице.
Циклы VBA
Цикл While также выполняет серию операторов, как и цикл FOR, но условием продолжения цикла является условие, остающееся истинным..
Например, вы можете написать тот же цикл FOR, что и цикл WHILE, просто используя переменную rowCounter следующим образом.
While rowCounter < rng.Count + 2If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend
Примечание: завершающий предел rng.Count + 2 необходим, поскольку счетчик строк начинается с 2 и должен заканчиваться на строке 7, где заканчиваются данные. Однако счетчик диапазона (B2:B7) равен только 6, и цикл While завершится только тогда, когда счетчик станет БОЛЬШЕ счетчика, поэтому последнее значение rowCounter должно быть равно 8 (или rng.Count + 2).
Вы также можете настроить цикл while следующим образом:
Пока rowCounter <= rng.Count + 1
Вы можете увеличить счетчик диапазона (6) только на 1, потому что, как только переменная rowCounter достигнет конца данных (строка 7), цикл может завершиться.
Циклы VBA Do While и Do Until
Циклы Do While и Do Until почти идентичны циклам While, но работают немного по-другому.
В этом случае вы должны переписать приведенный выше цикл While следующим образом: цикл Do-While.
DoIf Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2
В этом случае логика не сильно меняется, но если вы хотите убедиться, что логическое сравнение происходит после выполнения всех операторов (что позволяет им всем выполняться несмотря ни на что хотя бы один раз), тогда Цикл Do-While или Do-Until — правильный вариант.
Операторы выбора варианта VBA
Последний тип логического оператора, который вам необходимо понять, чтобы начать структурировать код VBA, — это операторы Select Case.
В приведенном выше примере предположим, что вы хотите иметь метод оценки, который не просто провален. Вместо этого вы хотите присвоить буквенную оценку от A до F.
Это можно сделать с помощью следующего оператора Select Case:
For Each cell In rngSelect Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell
Результирующая электронная таблица после запуска этого сценария VBA выглядит так, как показано ниже.
Теперь вы знаете все, что вам нужно знать, чтобы начать использовать VBA в приложениях Microsoft Office.
.