Лучшее руководство по VBA (для начинающих), которое вам когда-либо понадобится


Платформа 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, выберите меню Файл и выберите Параметры в левом меню навигации.
  • Вы увидите всплывающее меню «Параметры». Выберите Настроить ленту в меню навигации слева.
  • /дел>

    Левый список включает все доступные меню и команды меню, доступные в этом приложении Office. В списке справа указаны те, которые доступны или активированы на данный момент.

    • Вы должны увидеть Разработчика в списке справа, но он не будет активирован. Просто установите флажок, чтобы активировать меню разработчика.
      • Если вы не видите Разработчик справа, измените раскрывающийся список левого Выбрать команды на Все команды . . Найдите Разработчик в списке и выберите Добавить>> в центре, чтобы добавить это меню на ленту.
      • Когда закончите, нажмите ОК ..
      • Как только меню «Разработчик» станет активным, вы можете вернуться в главное окно приложения и выбрать Разработчик в верхнем меню.
      • Затем выберите Просмотреть код в группе «Элементы управления» на ленте, чтобы открыть окно редактора VBA.
        • Откроется окно редактора VBA, где вы сможете ввести код, который изучите в следующих разделах.
          • Попробуйте добавить меню разработчика в несколько приложений Office, которые вы используете каждый день. Как только вы научитесь открывать окно редактора VBA, переходите к следующему разделу этого руководства.
          • Общие советы по программированию 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 rng
            If 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 + 2
            If 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 проверяет, истинно ли условие после выполнения операторов в цикле.
            • Цикл Do-Until проверяет, является ли условие ложным после выполнения цикла.
            • В этом случае вы должны переписать приведенный выше цикл While следующим образом: цикл Do-While.

              Do
              If 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 rng
              Select 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.

              .

              Похожие сообщения:


              29.01.2020