Cоздание массивов постоянной длины

Массивы постоянной длины создаются с помощью операторов Dim или Static.

Cинтаксис

Dim имя_массива (границы_индекса) as [тип массива]

 

Пример

Dim a(20) As Integer

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

 

Static B(1 To 5) As String

 

Здесь происходит объявление статического массива с именем В, состоящий из 5 элементов типа String, с нумерацией элементов от 1 до 5.

 

Cоздание массива из списка значений

Функция Array создаёт массив из списка значений, переданных ей в качестве аргументов.

Синтаксис вызова функции

 

Array(список_аргументов)

Функция Array создаёт массив из значений аргументов, перечисленных в списке_аргументов, и возвращает переменную типа Variant, содержащую массив. Значения в списке разделяются запятыми; если список пуст, будет создан массив размера нуль.

Функции LBound и Ubound возвращают, соответственно, наименьший и наибольший индексы указанного измерения в массиве.

LBound (имя_массива,измерение)

UBound (имя_массива,измерение)

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

 

Пример

Dim a As Variant

a = Array(2, 3, 45, 12)

Функция Lbound(a) вернёт значение равное 0, а функция Ubound(a) вернёт значение равное 3.

 

А(0)=2, А(1)=3, А(2)=45, А(3)=12

 

Создание динамических массивов

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

Синтаксис

Dim имя_массива() [as тип]

Пример

Dim a() as integer

ReDim a(1 to 5)

ReDim указывает, что число элементов в описанном массиве равно 5, с нумерацией от 1 до 5.

Оператор ReDim определяет размер массива и инициализирует его элементы в соответствии с типом данных массива. Это означает, что ReDim инициализирует нулём каждое числовое значение, строкой нулевой длины для строковых массивов, значением Empty для массивов типа Variant и значением Nothing для объектных переменных. Т.е. размеры массива можно изменять сколько угодно, но вызов оператора ReDim уничтожает все предыдущие значения элементов. Позволяет сохранить предыдущие значения элементов массива ключевое слово Preserve.

Пример