Типы данных, определяемые пользователем (ОПТ)

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

Type ИмяТипа

Имя1 As Тип

Имя2 As Тип

…..

End Type

После описания типа данных можно разместить переменную заданного типа с помощью оператора Dim:

Dim <имя_переменной> As <имя_типа>

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

Type usrPersonType

Name As usrName

Number As Integer

End Type

Public usrCustomer As usrPersonType, usrSupplier As usrPersonType

Private Sub Command_Click()

usrSupplier.Name = "Ilse"

usrSupplier.Number = 21873

usrCustomer = usrSupplier

End Sub

Переменные usrSupplier и usrCustomer относятся к одному типу usrPerson. Поэтому они присваиваются напрямую, а не поэлементно.

Операторы языка VBА

Оператор – неделимое предложение, выполняющее какое-либо действие над имеющимися данными. Представляет собой любую комбинацию ключевых слов, свойств, функций, операций и символов, совокупность которых представляет собой конкретную конструкцию, распознаваемую VBA.

Оператор присваивания

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

ИмяПеременной = Формула

Переменная слева от знака равенства может быть простой переменной, элементом массива или свойством объекта. Если переменной присваивается значение ссылки на объект, то оператор присваивания имеет вид:

Set ИмяПеременной = Формула

Формула состоит из переменных, констант, операций и функций. Для записи формул применяют математические операции.

Инструкции языка VBA

Операторы VBA условно их можно разделить на группы:

· операторы передачи управления;

· операторы выбора;

· операторы циклов.

Операторы передачи управления

Операторы передачи управления применяются в программе для реализации безусловных алгоритмических конструкций. Они выполняют переход с одного участка программы на любой другой без какого-либо условия.

GOTO идентификатор,

где идентификатор – метка программы. Метка – идентификатор, помещенный слева от программного оператора и отделенный от него двоеточием.

Для получения хорошего стиля программирования следует избегать применения оператора GoTo.

Операторы выбора

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

В VBA существует два типа операторов выбора:

· операторы условия (If … Then … Else);

· переключатели (Select Case).

Оператор If … Then … Else

Синтаксис оператора имеет вид (в случае простого однострочного оператора):

If Условие Then [Инструкция1] [Else [Инструкция2]

В случае блочного оператора синтаксис имеет вид:

If Условие Then

[Инструкция1]

[Инструкция2]

[Else

[Инструкция3]

[Инструкция4]

End If]

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

Кроме того, блочная структура с ElseIf позволяет анализировать несколько условий:

If Условие1 Then

Блок1

ElseIf Условие2 Then

Блок2

………

ElseIf УсловиеN Then

БлокN

Else

БлокElse

End if

Если требуется проверить достаточно большое количество условий, вместо многократного использования ключевого слова ElseIf применяют оператор Select Case. Оба варианта работают одинаково хорошо, однако оператор Select Case, с точки зрения программиста, использовать удобнее.

Переключатели

Оператор Select Сase используется, когда необходимо выбрать из множества значений выражения.

Синтаксис инструкции:

Select Case Выражение

[Case списокУсловий1

[Инструкции1]]

[Case списокУсловий2

[Инструкции2]]

[Case списокУсловийN

[ИнструкцииN]]

[Case Else

[Инструкции_else]]

End Select

Список Условий является обязательным при наличии инструкции Case. Имеет вид:

· Case КОНСТАНТА1, КОНСТАНТА2, КОНСТАНТА3, …

· Case Is Знак_отншения КОНСТАНТА

· Case КОНСТАНТА1 to КОНСТАНТА2

Операторы цикла

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

· цикл For...Next – повторяет набор инструкций указанное число раз;

· цикл Do...Loop – повторяет набор инструкций, пока условие имеет значение True или пока оно не примет значение True;

· цикл While...Wend – повторяет набор инструкций, пока условие имеет значение True;

· цикл For Each...Next – повторяет набор инструкций для каждого объекта семейства.

For…Next

Цикл For...Next является самой старой и самой простой конструкцией и используется в случае, если заранее известно количество повторений группы инструкций:

For Счетчик = Начальное_значение То
Конечное_значение [Step Шаг]

Операторы

[Exit For]

[Операторы]

Next [Счетчик]

Счетчик – обязательный элемент. Это должна быть числовая переменная. Она не может иметь тип Boolean или быть элементом массива.

Начальное_значение – обязательный элемент, содержит начальное значение переменной Счетчик.

Конечное_значение - обязательный элемент, содержит конечное значение переменной Счетчик.

Шаг – элемент необязательный, это значение, на которое изменяется счетчик при каждом выполнении тела цикла.

Do...Loop

Если количество проходов должно зависеть от условия, используют цикл Do...Loop. В зависимости от позиции условия различают два варианта цикла Do...Loop.

Наши рекомендации