End Sub

End Sub

End Sub

Пять функций для работы с массивами

С массивами VBA чаще всего используют пять функций: Array, Erase, IsArray, LBound и UBound. Кратко расскажем о каждой из них.

Функция Array позволяет создавать массив в ходе выполнения программы, без предварительного описания:

Sub МассивБезОписания()

Data6 = Array("Иванов", 60, #3/21/1947#)

MsgBox Data6(1) & ", возраст " & Data6(2) _

& " родился " & Data6(3)

Во второй строке программаМассивБезОписания функцией Array создается одномерный 3-элементный массив типа Variant фиксированного размера. Помните, что функция Array всегда возвращает массив Variant и использует нумерацию, заданную инструкцией Option Base.

Функция Erase используется для удаления данных, хранимых в элементах массива. Если это массив фиксированного размера, функция Erase лишь очищает его, а память, выделенная массиву, остается за ним. Динамический массив уничтожается функцией Erase полностью. Программа ФункцияErase демонстрирует удаление всех значений, записанных в массив фиксированного размера.

Sub ФункцияErase()

Dim Data7(2) As Integer

Data7(1) = Int(100 * Rnd())

Data7(2) = Int(100 * Rnd())

MsgBox "Лотерейные номера: " & Data7(1) & _

", " & Data7(2)

Erase Data7

MsgBox "Лотерейные номера: " & Data7(1) & _

", " & Data7(2)

Здесь элементам массива присваиваются значения и выводятся в информационном окне. Затем для удаления содержимого массива вызывается функция Erase. Второй вызов функции MsgBox свидетельствует, что во всех элементах Data7 содержатся нули. В следующем примере показан вызов функции Erase для динамического массива.

Sub EraseДинамичМассив()

Dim Data8() As Integer

ReDim Data8(2)

Data8(1) = Int(100 * Rnd())

Data8(2) = Int(100 * Rnd())

MsgBox " Лотерейные номера: " & Data8(1) & _

", " & Data8(2)

Erase Data8

MsgBox " Лотерейные номера: " & Data8(1) & _

", " & Data8(2)

Выполнение программы EraseДинамичМассив приводит к ошибке в строке 8, потому что функция Erase в предыдущей строке освободила всю память, занятую динамическим массивом. После этого VBA уже не может работать с индексами Data8 и обращение к этому массиву вызывает ошибку.

Функция IsArray – это встроенная функция VBA, которая позволяет проверить, является ли некоторая переменная массивом. IsArray принимает один аргумент и возвращает True (если переменная является массивом) или False (если переменная не является массивом). Такая операция полезна, например, когда вы вызываете функцию, возвращающую массив, но не уверены, что она действительно вернет его, а не обычную переменную. Действие IsArray продемонстрировано ниже:

Sub ФункцияIsArray ()

Dim Data9(2) As Integer

Dim ArrayBool As Boolean

ArrayBool = IsArray(Data9)

If ArrayBool = True Then

MsgBox "Data9 является массивом."

End If


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: