Программирование в vba для начинающих

Excel VBA Учебник о основных терминах для изученияИтак, вы создали свой первый (или несколько первых) макрос(ов) Excel, возможно. Выполнив следующие 7 простых шагов для создания макроса. К этому времени ваши коллеги уже смотрят на вас, как на волшебника.

Это отличный признак того, что вы находитесь на хорошем пути к изучению макросов и Visual Basic для приложений (VBA).

Однако…

Возможность создать базовый макрос в Excel-это только начало процесса. Чтобы стать действительно эффективным и продуктивным пользователем макросов и VBA. Если вы действительно хотите раскрыть мощь этих инструментов, вы должны изучить VBA из-за того, что, помимо прочего. Запись макроса иногда просто не “режет его”.

Плохая новость (по крайней мере, для некоторых из вас) заключается в том. Что использование VBA требует от вас изучения программирования.

Хорошая новость заключается в том. Что программирование в Excel не так сложно, как может показаться на первый взгляд.

Если это звучит не так убедительно, подождите…

Чтобы помочь вам в процессе изучения Visual Basic for Applications, я создал этот учебник Excel VBA для начинающих. Где подробно объясняю 16 (на самом деле вы, вероятно. Узнаете еще больше) основных терминов. Которые вам необходимо знать для изучения программирования на VBA. В частности, я сосредоточусь на основных терминах. Которые вы будете постоянно находить в процессе становления экспертом VBA.

К тому времени, когда вы закончите читать это руководство для начинающих. Вы поймете основы по крайней мере 16 основных терминов. Которые вам нужно знать. Чтобы изучить Visual Basic для приложений. Ниже приведен план этого учебника Excel:

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

Получите немедленный бесплатный доступ к учебнику Excel VBA Tutorial for Beginners workbook examples

Если некоторые (или все) из приведенных выше терминов звучат для вас совершенно странно, не волнуйтесь. До обучения в VBA я учился и работал в 2 профессиях, которые печально известны тем. Что используют специализированный жаргон. Который совершенно непонятен посторонним: юриспруденция и финансы. Короче говоря…Visual Basic для приложений все еще казался мне совершенно другим языком. Но потом я кое-что понял.:

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

Что такое VBA?

Как вы, возможно, уже знаете, VBA означает Visual Basic для приложений.

VBA-это язык программирования. Который был разработан Microsoft и включен в большинство продуктов. Входящих в состав Microsoft Office.

Что именно это означает?

Вы можете думать о языке программирования так же, как о любом другом языке: английском. Испанском, немецком, Французском. Итальянском. Португальском. Хинди, китайском. Корейском и т. Д. Язык имеет несколько функций, но для целей этого учебника Excel VBA для начинающих я сосредоточусь на одном аспекте: Коммуникация.

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

Другими словами, Visual Basic for Applications-это язык, который позволяет нам с вами передавать инструкции в Excel.

Так что нет никакого способа обойти это:

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

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

Представьте, что вы изучаете новый человеческий язык (например, французский, итальянский или испанский). Один из предметов, который вам нужно изучить, — это его структура, и, скорее всего, вы столкнетесь с такими терминами. Как существительные. Местоимения, глаголы. Прилагательные и тому подобное. Если вы не слышали эти термины раньше или вы, как и я, забыли их точное значение. Изучение нового языка может быть довольно сложным.

Что ж…

Языки программирования существенно не отличаются друг от друга, и поэтому для того, чтобы выучить такой язык. Как Visual Basic для приложений. Вам необходимо понять его структуру. Поскольку эта структура не совсем такая же, как у человеческих языков. Вы сталкиваетесь с некоторыми особыми (и разными) терминами. Которые вы должны выучить.

И вот тут-то на помощь приходит этот учебник Excel VBA для начинающих.

В следующих разделах я объясню вам некоторые из наиболее важных терминов. Которые вам необходимо знать для изучения программирования на VBA. К концу этого руководства вы поймете основные строительные блоки Visual Basic for Applications. Что позволит вам гораздо быстрее освоить этот язык программирования и овладеть им свободно.

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

Что Такое Макрос? В Чем Разница Между Макросами И VBA?

Макросы Excel и Visual Basic for Applications-это не совсем одно и то же, хотя они тесно связаны. И иногда люди используют их взаимозаменяемо.

Как объяснялось выше, VBA-это язык программирования. Который можно использовать в нескольких программах. Входящих в состав Microsoft Office. Таких как Excel. Power Point. Word и Access.

Макрос это:

  • Это не язык программирования.
  • (Обычно) определяется как набор инструкций. Используемых для автоматизации приложения Microsoft Office (например, Excel).

Другими словами:

  • Макрос — это последовательность инструкций. Которым должен следовать Excel для достижения определенной цели.
  • Visual Basic for Applications-это язык программирования. Который можно использовать для создания макросов.

Возьмем, к примеру, следующие инструкции:

Пример различия между макросами и visual basic для приложений

Весь набор инструкций является эквивалентом макроса Excel. Это последовательность инструкций. Которым следует следовать, чтобы достичь цели. Которая в данном случае заключается в наслаждении едой цукэмена.

Язык, на котором написаны инструкции на изображении выше, — английский. Это эквивалент Visual Basic для приложений.

Так… как видите, макросы VBA и Excel имеют очень тесную связь, но, строго говоря, это не одно и то же.

Однако, как вы увидите ниже, нередко некоторые термины используются как синонимы со словом макрос.

Что такое Код VBA?

Вот где это может начать немного запутываться, но, пожалуйста, потерпите меня…

При работе с VBA вы выполняете код VBA. Этот код VBA выполняет (определенные) действия/задачи. Вы можете создать код VBA одним из следующих 2 способов:

  • Записывая определенные действия, выполняемые в книге Excel с помощью записи макросов.
  • Написав код VBA в редакторе Visual Basic (VBE).

Ниже приведен очень простой пример кода VBA. Комментарии в верхней части (зеленым шрифтом) объясняют, что делает часть кода.

Пример кода VBA

Теперь вы можете задаться вопросом… в чем разница между макросом и кодом VBA?

Я не вдаваюсь в слишком большие детали (это отклоняется от цели этого учебника Excel VBA для начинающих). Для целей настоящего руководства существенной разницы нет. Фактически, в контексте нескольких приложений Microsoft Office термин “макрос” используется несколькими пользователями для обозначения кода VBA.

Некоторые пользователи Excel VBA различают код и макросы. С этой точки зрения:

  • Термин “Код VBA” (обычно) относится к набору команд VBA, которые вы создаете либо с помощью:
    • Запись макроса; или
    • Написание кода VBA в VBE.
  • Термин “макрос” (обычно) относится к набору инструкций. Которые Excel выполняет автоматически.

Теперь, когда определения макросов, VBA и кода VBA ясны (или, по крайней мере, яснее, чем они были в начале). Давайте начнем рассматривать различные компоненты Visual Basic для приложений.

Что Такое Модуль?

В широком смысле модуль-это эквивалент контейнера VBA. Другими словами. Именно там Excel фактически хранит код VBA.

Если вы видели грузовое судно или порт, или если вы когда-либо участвовали в перевозках, вы, возможно. Видели интермодальные контейнеры (такие. Как на изображении ниже). Эти контейнеры используются, среди прочего, для хранения товаров.

Контейнеры, используемые в качестве аналогии для модулей в VBA

В Excel эквивалентом интермодальных контейнеров являются модули, а хранящиеся товары-фрагменты кода VBA.

Вы можете проверить, какие модули хранятся в книге Excel, над которой вы сейчас работаете. В Проводнике проектов (который является одним из разделов редактора Visual Basic). На следующем скриншоте показан пример Проводника проектов, где есть только 1 стандартный модуль (называемый “Module1”).

обозреватель проектов с модулем

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

Модули состоят из процедур, поэтому, как вы можете себе представить, следующий логичный вопрос таков:…

Что Такое Процедуры И Процедуры?

Процедура-это, по сути, часть компьютерной программы, которая выполняет определенную задачу или действие.

Говоря более технически, процедура-это блок операторов. Который заключен в конкретный оператор объявления и конечное объявление. VBA поддерживает два типа процедур:

  • Вложенные процедуры, которые выполняют действие в Excel. Оператор объявления. Который начинает процедуру Sub, является “Sub”.

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

    Пример процедуры sub с декларацией и оператором end

  • Процедуры функций. Которые выполняют вычисления и возвращают значение.

Подпроцедуры не возвращают значение. Но функциональные процедуры могут выполнять определенные действия перед возвращением значения.

Практическое использование таких терминов, как sub procedure, routine, program, procedure и macro. Может быть немного запутанным. В некоторых случаях эти термины используются взаимозаменяемо.

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

Я предполагаю, что у вас может возникнуть несколько вопросов. Связанных с приведенным выше (более техническим) определением процедуры. Поэтому давайте посмотрим на значение одного из ее ключевых слов…

Что Такое Утверждение?

Утверждение-это инструкция. В некоторых контекстах можно выделить 2 основных типа высказываний:

  1. Операторы объявления, как следует из их названия, используются для объявления

    чего-то. Такого как переменная или константа. В данном конкретном случае этот оператор объявления является открывающим оператором Sub. Который объявляет процедуру Sub с именем Best_Excel_Tutorial.

    Пример оператора declaration в коде VBA

  2. Исполняемые операторы-это операторы, которые указывают, что должно быть предпринято определенное действие.

    Макрос Best_Excel_Tutorial, используемый в качестве примера выше, имеет несколько исполняемых операторов. Например, утверждение “ActiveCell.Select” указывает, что Excel должен выбрать текущую активную ячейку.

    Пример исполняемого оператора в коде VBA

    Особым типом исполняемых операторов являются операторы присваивания. Операторы присваивания присваивают переменным или константам определенное значение или выражение.

Что Такое Объекты?

Как вы видели выше, процедуры выполняют задачи или действия.

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

Ответ — это объекты.

Рассмотрим английскую грамматику.

  • В обычном английском языке с объектом (обычно) что-то делается.
  • В реальной жизни вы можете найти объекты где угодно, в том числе и на ноутбуке, который используете для работы с Excel.

Аналогия для объяснения того что такое объект в VBA

Лошади-еще один пример объектов.

Пример объекта в Visual Basic для приложений

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

В Visual Basic для приложений дела обстоят не очень по-другому. Это связано с тем. Что большая часть кода VBA работает с объектами (и манипулирует ими). В контексте Excel VBA можно работать с более чем 100 объектами.

Ниже приведены некоторые примеры объектов в Visual Basic для приложений:

Можете ли вы определить 2 объекта в макро Best_Excel_Tutorial. Который был использован в качестве примера?

Если нет, не волнуйтесь; я укажу их для вас на следующем скриншоте.

Пример двух объектов в фрагменте кода VBA

Объекты ActiveCell и Selection, которые я выделил выше, являются одними из наиболее распространенных.

  • ActiveCell относится к текущей активной ячейке в текущей активной книге Excel.
  • Выделение относится к выбранному в данный момент объекту, который в приведенном выше примере является ячейкой.

Объекты определяются классами, поэтому следующий вопрос…

Что Такое Занятия?

Как я уже упоминал выше, классы определяют объекты и, в частности, классы определяют следующие аспекты объекта:

  • Переменные.
  • Свойства.
  • Процедуры.
  • События.

Как следствие вышесказанного, вы можете:

  • Думайте об объектах как об экземплярах классов; или
  • (Аналогично)Думайте о классах как о чертежах.

Например, предположим, что вы управляли компанией, которая производила рулонные пленочные камеры. У этой компании был базовый чертеж или технический чертеж, такой как:

Аналогия чертежа для объяснения разницы между классами и объектами в VBA

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

Аналогия, объясняющая различие между классами и объектами

Фактически произведенные камеры являются эквивалентом объекта VBA.

Классы-это немного продвинутая тема Excel, и поэтому вы вряд ли будете много работать с ними в самом начале. Но, на всякий случай, теперь вы знаете, что такое класс и как он отличается от объекта и связан с ним.

Что Такое Коллекции?

В Visual Basic для приложений слово collection относится к коллекциям объектов.

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

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

На базовом уровне концепция коллекций относительно проста, но если вам нужна более графическая иллюстрация. Ознакомьтесь со следующей коллекцией доктора Сьюза.

Аналогия коллекции объектов в VBA

В контексте VBA:

  • Коллекции-это объекты.
  • Существует (также) класс коллекции.

Если коллекции группируют объекты, которые имеют некоторую связь между ними, вам может быть интересно…

Как Объекты Связаны Друг С Другом?

Объекты могут быть связаны друг с другом несколькими способами. Однако основным типом отношений является сдерживание.

Отношения сдерживания присутствуют, когда объекты помещаются в объект контейнера. Это означает, что объекты могут содержать в себе другие объекты, такие как пластиковый контейнер (объект). В котором хранятся книги доктора Сьюза (другие объекты) на изображении выше.

Очень хорошим примером отношения сдерживания является коллекция объектов.

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

Что Такое Собственность?

Объекты имеют свойства. Это атрибуты, характеристики или качества, которые могут быть использованы для описания объекта. Я освещаю тему свойств в этом учебнике Excel.

VBA позволяет выполнять следующие действия:

  • Считывание текущего значения свойств объекта; и
  • Изменение свойств объекта.

Возьмем, к примеру, вот эту лошадь:

excel vba tutorial for beginners - пример свойств объектов в VBA


Каковы некоторые из его свойств? А как насчет цвета его волос или глаз? Размер его ушей?

Вы поняли идею.

В дополнение к свойствам, объекты имеют методы. Как вы можете ожидать, следующий вопрос, на который я отвечу:…

Что Такое Методы?

Чтобы понять, что такое методы, вернемся к английской грамматике.

Как я объяснил выше, определяя термин “объект”, объект что-то сделал с ним. Метод — это “что-то”, которое делается с объектом. Другими словами: метод выражает действие, выполняемое с/над объектом.

В грамматическом плане метод (в VBA) примерно эквивалентен глаголу (в английском языке). Я более подробно освещаю здесь тему методов.

Давайте продолжим использовать лошадей чтобы проиллюстрировать значение этих компонентов Visual Basic for Applications:

Каков пример метода (глагола), который можно применить к лошади?

Как насчет верховой езды?

Иллюстрация методов VBA в Excel

Как Выглядят Свойства И Методы В Excel?

Давайте вернемся к макросу Best_Excel_Tutorial. Который я использовал в качестве примера в этом конкретном руководстве для начинающих. Если вы запустите этот макрос, Excel выполнит следующие действия:

  • Введите “Это лучший учебник Excel” в активную ячейку.
  • Автоматически соответствует ширине столбца активной ячейки.
  • Окрашивает активную клетку в красный цвет.
  • Изменяет цвет шрифта активной ячейки на синий.

Пример макроса, изменяющего свойства ячеек в Excel

Теперь когда вы знаете что такое свойство и что такое метод:

Сможете ли вы отличить, какие из вышеперечисленных ссылок относятся к свойству, а какие-к методу?

Чтобы ответить на этот вопрос, давайте еще раз взглянем на код VBA:

пример кода Visual Basic для приложений

И давайте более подробно рассмотрим соответствующие строки, чтобы определить, ссылаются ли они на свойство или метод:

  • “Активная ячейка.FormulaR1C1 = “Это лучший учебник Excel”” говорит Excel написать “Это лучший учебник Excel” в активной ячейке.

    FormulaR1C1 как свойство в Visual Basic для приложений


    ActiveCell возвращает объект. Точнее, он возвращает текущую активную ячейку.

    Свойство или метод?

    Собственность. Точнее, формула R1C1 задает формулу для ActiveCell.

  • — Отбор.Столбцы.AutoFit” дает команду Excel автоматически подогнать столбец активной ячейки.

    Пример AutoFit как метода в Visual Basic для приложений


    В этом случае объект представлен Выделением.Столбцы, которые представляют столбец текущей активной ячейки.

    Является ли AutoFit свойством или методом?

    Если вы ответили методом, вы правы. AutoFit изменяет ширину соответствующего столбца для достижения наилучшего соответствия. Другими словами, делает что-то (авто-подгонка) к объекту.

  • Часть первая с… Завершите утверждение, которое фактически устанавливает цвет заливки активной ячейки, следующим образом:“. Color = 255”.

    Пример свойства color в Visual Basic для приложений


    Все отдельные утверждения внутри этого С… End With оператор (включая “.Color = 255”) относится к выделению.Интерьер. Это внутренняя часть текущего выделения (в данном случае активной ячейки).

    Вы знаете, какой вопрос придет:

    является ли цвет свойством или методом?

    Поскольку Цвет задает основной цвет внутренней части активной ячейки, ответом будет свойство.

  • Наконец, часть вторая с… Завершите операцией, определяющей цвет шрифта “.Color = -4165632”.

    Другой пример свойства Color в VBA


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

    И, поскольку вы уже знаете, что цвет является свойством, я не буду спрашивать вас снова 😉.

Что Такое Переменные И Массивы?

В информатике переменная-это место хранения, которое вы связываете с именем и используете для представления определенного значения. Это значение хранится в памяти компьютера.

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

Аналогия, используемая для иллюстрации концепции переменных в Visual Basic для приложений

Как можно использовать конверты для хранения информации?

Вы можете, например:

  • Положи в конверт какую-нибудь информацию. Это содержимое конверта или, для целей программирования, значение переменной.
  • Поставьте имя на конверт. Это имя конверта или переменной.

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

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

Можете ли вы представить, почему ссылка на название конверта, а не на саму информацию. Может быть более эффективным вариантом?

Но давайте вернемся к самой важной теме:

Лошади!

Держу пари, вы этого не ожидали 😛… но давайте представим, что у вас есть одна из лошадей на изображениях выше. И очень важная часть рациона вашей лошади-это кубики сахара.

Изображение, используемое для объяснения концепции переменных в Visual Basic for Applications

У лошади есть 5 разных опекунов, и каждый день он должен есть от 5 до 10 кубиков сахара. Чтобы гарантировать, что это так. Вы устанавливаете следующее правило: каждый смотритель должен давать лошади по 1 или 2 кубика сахара в день.

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

Таблица, используемая для объяснения переменных VBA

Поскольку вы очень эффективный менеджер, вы хотите запрограммировать приложение VBA (назовем его “Horse_Sugar_Cubes”). Которое делает следующее:

  • Спрашивает каждого смотрителя, сколько кубиков сахара они дали лошади.
  • Если кто-то из смотрителей не соблюдает правило. Требующее от него дать коню 1 или 2 кубика сахара, выдает напоминание.

Прежде чем мы взглянем на фактический код VBA, проверьте, как работает макрос Horse_Sugar_Cubes на практике:

Пример того. Как приложение VBA будет работать в Excel

Этот учебник Excel VBA для начинающих сопровождается книгами Excel, содержащими данные и макросы. Которые я использую (включая макрос Horse_Sugar_Cubes). Вы можете получить немедленный бесплатный доступ к этим примерам книг, нажав на кнопку ниже.

Получите немедленный бесплатный доступ к учебнику Excel VBA для начинающих примеры книг

Давайте начнем настройку приложения Horse_Sugar_Cubes. Для этих целей можно использовать следующие две переменные:

  • Переменная, которая хранит количество кубиков сахара, данных конкретным смотрителем лошади. Вы можете назвать эту переменную sugarCubes.
  • Переменная, хранящая идентификационный номер смотрителя. Вы можете назвать эту переменную caretakerNumber.

Как вы создаете эти переменные?

Чтобы создать переменную в Visual Basic for Applications, ее необходимо объявить. Объявляя переменную. Вы определяете ее имя и характеристики и приказываете компьютеру выделить некоторое пространство для хранения.

Вы объявляете переменную в VBA с помощью оператора Dim. Я объясняю тему объявления переменных в этом учебнике Excel. На данный момент имейте в виду следующее:

  • Вы можете объявлять переменные на разных уровнях. Уровень, на котором вы объявляете переменную, определяет, когда переменная применима.

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

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

  • Поскольку переменные используются для хранения различных типов данных, можно определить различные типы для переменной. Вы делаете это с помощью ключевого слова As.

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

Давайте посмотрим, как вы можете объявить переменные caretakerNumber и sugarCubes на практике.

Пример объявления переменной в Visual Basic для приложений

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

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

Переменные, содержащие одно значение, называются скалярными. При работе с одним элементом используются скалярные переменные.

Что делать, если вы работаете с группой элементов, которые связаны друг с другом?

В этих случаях используются массивы. Массивы-это наборы индексированных элементов, имеющих общий тип данных и логические отношения между ними. Функция по существу такая же, как и у переменной: удержание значений. Основное отличие состоит в том. Что массивы могут хранить несколько значений, в то время как скалярные переменные могут содержать только одно значение.

Когда вы используете массив, вы ссылаетесь на различные элементы массива, используя общее имя. И различаете их с помощью числа (называемого индексом или индексом). Например, если у вас есть группа из 10 лошадей, пронумерованных от 1 до 10, вы можете называть их лошадьми(1). Лошадьми(2). Лошадьми(3) и так далее. Пока не появится лошадь(10).

Пример массива в Visual Basic для приложений

Давайте продолжим изучение основных компонентов VBA, которые появляются в приложении Horse_Sugar_Cubes, поняв…

Что Такое Условие?

Условие — это утверждение или выражение, которое имеет значение true или false. Затем, в зависимости от того, оценивается ли оператор в true или false. Excel выполняет (или не выполняет) группу операторов. Другими словами: если условие выполнено (истинно), что-то происходит.

Можете ли вы придумать способ применения условного оператора в приложении VBA, которое вы разрабатываете. Чтобы отслеживать. Сколько кубиков сахара дают вашей лошади смотрители?

Подсказка: условные операторы часто используют структуру if-then.

Если вы внимательно посмотрите на описание 2 вещей, которые должно делать приложение Horse_Sugar_Cubes, вы заметите. Что второй шаг следует за структурой if-then. Точнее:

  • Если кто-то из смотрителей не соблюдает правило. Которое требует. Чтобы он дал 1 или 2 кубика сахара лошади…
  • Затем макрос Horse_Sugar_Cubes выдает напоминание.

Если вы являетесь пользователем Excel, вы, возможно, заметили. Что условия не являются исключительными для программирования VBA. Например, несколько функций Excel, таких как функция IF, позволяют проверить. Является ли условие истинным или нет. Ивываясь на результате. Делать то или иное. Кроме того, для выполнения логических тестов можно использовать другие функции, такие как ISNUMBER.

Существует несколько способов структурирования условных операторов в приложениях Visual Basic. Для целей приложения Horse_Sugar_Cubes вы можете использовать If…Then…Еще одно заявление.

Как это выглядит внутри редактора Visual Basic?

Вы можете использовать setup следующее Если…Затем оператор для макроса Horse_Sugar_Cubes:

Пример

Давайте взглянем на каждую из строк этого фрагмента кода:

  • В первой строке указано 2 условия, которые могут быть оценены как истинные или ложные.

    Эта конкретная строка просит Excel проверить. Является ли значение кубиков сахарного тростника (количество кубиков сахара. Которое конкретный смотритель дал лошади) меньше 1 или больше 2. Другими словами. Именно здесь Excel подтверждает. Соблюдал ли тот или иной смотритель правило. Требующее от него давать лошади 1 или 2 кубика сахара в день.

    Если одно из этих двух условий истинно, Excel выполняет оператор. Который появляется во второй строке. Если ни одно из 2-х условий не является истинным (оба являются ложными), Excel не выполняет оператор во второй строке.

  • Вторая строка говорит Excel. Что он должен делать, если любое из 2 условий, заданных в первой строке, является истинным.

    В этом случае. Если смотритель не дал ни одного кубика сахара (менее 1) или дал лошади более 2 кубиков сахара в определенный день. Excel выводит в диалоговом окне сообщение. Напоминающее этому смотрителю. Что он “должен давать лошади 1 или 2 кубика сахара в день”.

  • Третья строка завершает If…Then…Еще блок.

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

Вам нужен только один дополнительный компонент VBA для завершения базовой структуры вашего макроса Horse_Sugar_Cubes:

Как заставить Excel спросить каждого из 5 смотрителей, сколько кубиков сахара он дал лошади?

Я помогу вам ответить на этот вопрос в следующем разделе.

Что Такое Петля?

Циклы-это утверждения. Которые:

  • Указываются один раз, но…
  • Выполняются несколько раз.

Другими словами, цикл-это особый оператор. Который заставляет группу инструкций следовать несколько раз. Как и условные операторы, существует несколько способов структурирования циклов.

Однако для целей приложения Horse_Sugar_Cubes вы можете использовать оператор For Each…Next. Этот оператор запрашивает у Excel повторное выполнение группы операторов для каждого из компонентов определенной группы.

На практике это выглядит примерно так. Это для каждого…Следующего оператора макроса Horse_Sugar_Cubes. Который я использую в качестве примера в этом учебнике Excel VBA для начинающих.

Пример цикла For Each в Visual Basic for Applications

Обратите внимание, что условное утверждение, которое я объясняю в разделе выше, существует.

Пример условия в цикле в Visual Basic для приложений

Однако то, что более уместно для целей этого раздела, — это общая структура a Для каждого…Следующего утверждения, поэтому давайте посмотрим на нее.

  • В начале a Для каждого…Следующего оператора должно быть указано: “Для каждого элемента определенного типа в конкретной группе”. В приведенном выше примере эта строка выглядит следующим образом:

    Пример открытия строки а для каждого...Следующий оператор в Visual Basic для приложений


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

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

    В данном случае это диапазон ячеек C5-C9. Это коллекция, над которой повторяются операторы внутри цикла.

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

    Пример элементов коллекции, используемых в цикле VBA

  • Тело простого для каждого…Следующего оператора, такого как в макро Horse_Sugar_Cubes, включает в себя определенное количество инструкций. Которые Excel применяет к каждому из элементов в группе (в соответствии с тем. Что было указано в первой строке).

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

    Пример операторов внутри a Для каждого...Следующий оператор в Visual Basic для приложений


    Приведенная выше группа утверждений является очень простым примером. Существуют более сложные структуры, включающие операторы (такие как Continue For или Exit For). Которые могут использоваться для передачи управления в различные части кода VBA.

  • Последнее утверждение оператора For Each…Next имеет вид “Следующий элемент”. В приведенном выше примере это выглядит следующим образом:

    Пример закрытия строки а для каждого...Следующий оператор в Visual Basic для приложений


    Этот оператор просто завершает определение цикла и сообщает Excel. Что после выполнения инструкций внутри цикла он должен перейти к следующему элементу (в данном случае к следующим сахарным кубам).

Подводя итог, можно сказать, что открывающая и закрывающая строки оператора For Each…Next говорят Excel. Что он должен выполнить инструкции, находящиеся внутри цикла, для каждой из 5 ячеек. Где должно быть записано количество кубиков сахара. Предоставленных лошади каждым смотрителем.

Пример макроса: Horse_Sugar_Cubes

Прежде чем я закончу этот учебник Excel VBA для начинающих, давайте в последний раз построчно рассмотрим полный код VBA. Лежащий в основе макроса Horse_Sugar_Cubes. Чтобы рассмотреть некоторые основные термины. Которые были рассмотрены в этом руководстве. И понять каждую из инструкций. Лежащих в основе приложения.

Пример кода VBA

Для удобства пользования приведем еще одну иллюстрацию того. Как макрос Horse_Sugar_Cubes работает на практике:

Пример работы приложения VBA при запуске в Excel

Давайте пройдемся по основным пунктам этого макроса и сделаем несколько общих замечаний чтобы еще больше проиллюстрировать каждый из терминов рассматриваемых в этом уроке:

1. Общие аспекты.

Приложение Horse_Sugar_Cubes написано на Visual Basic for Applications или VBA, языке программирования. Который вы можете использовать для передачи инструкций в Excel.

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

Код VBA. Лежащий в основе приложения Horse_Sugar_Cubes, хранится Excel в модуле-контейнере. В котором Excel хранит код VBA.

Макрос Horse_Sugar_Cubes содержит несколько операторов. Или инструкций.

#2. Sub Horse_Sugar_Cubes() и End Sub.

Пример объявления подпроцедуры в коде VBA

Первая строка кода на скриншоте выше объявляет подпроцедуру Horse_Sugar_Cubes. Подпроцедура-это серия операторов. Которые находятся между подпроцедурой и Конечными подпроцедурами и, точнее. Являются частью компьютерной программы. Выполняющей действие.

Другим основным типом процедур в VBA являются процедуры функций. Которые выполняют вычисления и возвращают определенное значение.

Последняя строка кода на скриншоте выше завершает выполнение процедуры sub Horse_Sugar_Cubes. Как только Excel выполняет эту строку. Макрос останавливается.

#3. Dim caretakerNumber Как целое число и Dim sugarCubes как диапазон.

Пример объявления 2 переменных в Visual Basic для приложений

В Visual Basic for Applications переменные обычно объявляются с помощью оператора Dim. После этого можно определить имя переменной и ее характеристики. Компьютер выделяет место хранения переменной. А затем вы можете использовать объявленную переменную в качестве заполнителя для представления определенного значения.

В приведенном выше примере объявлены 2 переменные. caretakerNumber объявляется как целое число. А sugarCubes-как диапазон.

#4. Номер смотрителя = 1.

Пример того. Как присвоить значение переменной в VBA

Эта строка является оператором присваивания. Который присваивает значение 1 переменной caretakerNumber. Как следствие этого назначения, каждый раз. Когда выполняется макрос Horse_Sugar_Cubes. CaretakerNumber устанавливается в начальное значение 1.

#5. Для Каждого…Следующего утверждения.

Пример а для каждого...Следующий оператор в Visual Basic для приложений

A For Each…Next оператор запрашивает Excel многократно выполнить группу операторов для каждого члена группы. Этот тип операторов-один из простейших способов реализации цикла, оператор. Который заставляет определенную группу инструкций повторяться несколько раз.

В случае макроса Horse_Sugar_Cubes цикл просит Excel повторить соответствующий набор инструкций для каждого из 5 смотрителей лошади. Давайте взглянем на тело оператора For Each…Next, чтобы понять набор инструкций. Которые повторяются:

  • Сахарные кубики.Value = InputBox(“Количество кубиков сахара. Переданных лошади смотрителем ” и caretakerNumber).

    Пример оператора внутри a Для каждого...Следующий оператор в Visual Basic для приложений


    Первая часть строки (Сахарный тростник.Value =) присваивает значение переменной sugarCubes.

    Во второй части инструкции (InputBox(“Количество кубиков сахара. Предоставленных лошади смотрителем ” и caretakerNumber)) Excel показывает всплывающее поле ввода. Которое спрашивает. Какое количество кубиков сахара предоставлено лошади каждым смотрителем. Число, введенное в поле, записывается в соответствующую ячейку листа Excel и является значением. Присвоенным переменной sugarCubes.

    Поле ввода ссылается на каждого смотрителя по его идентификационному номеру (от 1 до 5). Вызывая значение переменной caretakerNumber (например. Первый смотритель называется смотрителем 1 и так далее). Как следствие оператора непосредственно над Каждым…Следующим оператором (caretakerNumber = 1). Значение переменной caretakerNumber в начале процесса всегда равно 1. Ниже я поясняю. Какая инструкция просит Excel обновить номер смотрителя для соответствующего смотрителя.

  • Условное высказывание.

    Пример условного оператора в Visual Basic для приложений


    Условные операторы оценивают определенное условие и в зависимости от результата (true или false) Excel выполняет (или воздерживается от выполнения) определенные действия.

    Условный оператор в макросе Horse_Sugar_Cubes оценивает. Дал ли смотритель лошади меньше 1 или больше 2 кубиков сахара (следовательно. Не соблюдает правило. Которое требует. Чтобы они давали лошади 1 или 2 кубика сахара в день). Если какое-либо из 2 условий выполнено (количество кубиков сахара. Предоставленных лошади, меньше 1 или больше 2). Excel выводит окно сообщения с напоминанием о том. Что “Вы должны давать лошади 1 или 2 кубика сахара в день”.

  • caretakerNumber = caretakerNumber + 1.Этот оператор увеличивает значение переменной caretakerNumber на 1 для каждого последовательного повторения оператора For Each…Next.

    Поэтому во второй раз. Когда набор инструкций повторяется макросом. CaretakerNumber равен 2. В третий раз переменная имеет значение 3. Как и следовало ожидать. Значения для четвертого и пятого раз равны 4 и 5 соответственно.

Вывод

Вы сделали это до конца этого учебника Excel VBA для начинающих.

К настоящему времени. Основываясь на том. Что вы узнали из этого руководства для начинающих. Вы знаете значения по крайней мере 16 основных терминов. Которые вам нужно знать. Чтобы изучать программирование на VBA. Вы также можете понять. Как некоторые из этих терминов иногда используются взаимозаменяемо. И некоторые обсуждения их использования.

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

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

Скорее всего, вы много раз найдете термины, описанные в этом конкретном руководстве для начинающих, на пути к тому. Чтобы стать экспертом по VBA. Поэтому, возможно. Захотите добавить этот пост в закладки и вернуться по мере необходимости во время будущих исследований Visual Basic for Applications.