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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

Функция Array

Она позволяет создавать массив в ходе выполнения программы, без предварительного описания:

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

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

MsgBox Data6(1) & ", возраст " & Data6(2) & " родился " & Data6(3)

End Sub

Во второй строке программаМассивБезОписания функцией 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)

End Sub

Здесь элементам массива присваиваются значения и выводятся в информационном окне. Затем для удаления содержимого массива вызывается функция 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)

End Sub

Выполнение программы 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

End Sub

Конечно, этот пример не имеет практического смысла, но действие IsArray показано в нем ясно. Во второй строке объявлен массив, в третьей – логическая переменная ArrayBool. Далее этой переменной присваивается значение, возвращенное Функцией IsArray (True или False). Инструкция If использована для проверки результата IsArray и вывода сообщения, если значение переменной ArrayBool равно True. Подробно эта инструкция описана в разделе «Управляющая инструкция If-Then-Else» на стр. 72.

Функции LBound и UBound

Они помогут Вам определить верхнюю и нижнюю границы индексов массива, как показано в следующем примере:

Sub Lbound_UBound()

Dim Data10(4 To 15) As Integer

MsgBox "Нижняя граница массива" & LBound(Datal0) & "."

MsgBox "Верхняя граница массива " & UBound(Datal0) & "."

End Sub

Замечание:

Применение этих функций к обычной переменной или динамическому массиву, не описанному инструкцией ReDim, вызывает ошибку при выполнении программы. Чтобы избежать этого, перед вызовом функций LBound и UBound проверьте переменную функцией IsArray.

Константы

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

Константы описываются почти так же, как и другие переменные, но с одним исключением – одновременно с объявлением константе присваивается значение, изменить которое потом уже нельзя. Попытка позже присвоить значение константе приведет к ошибке. Вот пример описания константы.

Const MinVal As Integer = 1

Для описания константы используется ключевое слово Const, за которым указывают имя константы, её тип (один из стандартных типов VBA, кроме пользовательского) и значение. Если в описании Вы не зададите тип данных, он будет присвоен константе автоматически, в соответствии с её значением. Обратите внимание, что для задании константы применяют и выражения:

Const Con1 As Integer = 2 * 2

В одной инструкции Const можно описать несколько констант, разделив их запятыми:

Const Con1 As Integer = 5, Con2 As Integer = 6, Con3 As Integer = 7

Массивы констант в VBA задавать нельзя, во всем же остальном они похожи на обычные переменные, если, конечно, Вы при выполнении программы не пытаетесь изменить их значения.



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 115; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.27.232 (0.007 с.)