Выбрать главу

Оператор I s используется для определения, являются ли две ссылки ссылками на один и тот же объект. Этот оператор допускает использование в качестве операндов только ссылки на объекты. Формат данного оператора такой:

Результат = Ссылка1 Is Ссылка2

Оператор Like используется для проверки, удовлетворяет ли текст в строке заданному шаблону. Формат этого оператора следующий:

Результат = Строка Like Шаблон

Перечень символов, которые могут употребляться в строке шаблона, приведен в табл. 1.5.

Таблица 1.5. Перечень возможных символов в строке шаблона

В качестве примера определим, является ли строка «15 26 ОА» номером автомобиля серии ОА или ОО. Значение строки-шаблона для этого случая будет равно «## ## О[AО]», а результатом применения оператора «15 26 ОА» Like «## ## О[АО]» будет значение True.

Для задания непрерывного диапазона символов в квадратных скобках можно воспользоваться знаком «минус» (-). При этом символы необходимо указывать в возрастающем порядке (по номеру в алфавите): [A-Z], а не [Z-A].

Примечание

Если нужно, чтобы в шаблоне присутствовали специальные символы, приведенные в табл. 1.5, то необходимо заключить соответствующие знаки в скобки: ([), (]), (#), (?), (*).

Логические операторы

В VBA введены операторы, которые используются в составе логических выражений (например, условие в инструкции If-Then-Else, которая будет рассмотрена позже). Формат логических операторов VBA (кроме импликации) и их описание приведены в табл. 1.6 (все выражения, используемые в операторах, – логические, принимающие значение True или False).

Таблица 1.6. Логические операторы VBA

Массивы

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

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

Объявление массива

Для объявления массивов в VBA используются инструкции, формат которых приведен ниже:

Public | Private Имя_массива ([Размерность])[As Имя_типа] _

[, Имя_массива ([Размерность]) [As Имя_типа]]…

или

Dim | Static Имя_массива ([Размерность])[As Имя_типа] _

[, Имя_массива ([Размерность]) [As Имя_типа]]…

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

Объявление массива отличается от объявления любой другой переменной тем, что при объявлении массива после идентификатора переменной указывается размерность. Если размерность не указана, то создается динамический массив, размер которого можно изменять во время выполнения программы. Для динамического массива инструкция объявления является формальной: чтобы этот массив можно было использовать, к нему необходимо применить инструкцию ReDim (об этой инструкции будет рассказано далее).

При указании размерности массива необходимо учитывать, что элемент Размерность имеет следующий формат:

Нижняя_граница To Верхняя_граница | Количество_элементов _

[,Нижняя_граница To Верхняя_граница | Количество_элементов]…

В VBA разрешено создавать многомерные массивы с количеством измерений не более 60. Размерности измерений массива разделяются запятой.

При задании размерности в виде Нижняягранща То Верхняягранща нужно явно указывать нижнюю и верхнюю границы измерения массива (например, 50 То 100).

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

Ниже приведены примеры объявлений массивов (переменного размера, двух одномерных и двух многомерных):

Dim avarValues()

Dim astrValues(1 To 10) As String, astrValues2(10) As String

Dim aintValues(1 To 10, 1 To 3) As Integer, aintValues(10, 3)

As Integer

Задание нижней границы по умолчанию

Как было сказано ранее, при указании размерности измерения массива может использоваться значение нижней границы по умолчанию. Для задания нижней границы, используемой по умолчанию, предназначена директива Option Base. Существуют только два варианта данной директивы:

полную версию книги