Синтаксис: ReDim [Preserve] Array(
NewSize )
Параметры: Preserve- ключевое слово,
используется для "переноса" данных
сохранённых в массиве до
переопределения его размерности в новый,
переопределённый массив. Не является
обязательным, только если нужно
сохранить старые данные. Его
использование требует дополнительной
памяти и времени, что заметно на больших,
по объему хранимых данных, массивах.
Например, если у вас был массив:
То, при использовании следующей строки
кода, данные будут выглядеть так: ReDim MyArray(1)
MyArray(0) ="One"
MyArray(1) ="Two"
Словами: те элементы которые "не
вместились" в новый массив, будут
потеряны.
Array- динамический массив (точнее
ссылка на него, посредством имени
массива).
Динамический массив отличается от
статического способом его объявления:
Dim StatArray(1500) As String 'статический массив
Dim DinArray() As String 'динамический массив
Как вы заметили, всё отличие в том, что у
динамического массива сначала нет
элементов. NewSize - Число, обозначающее новую
размерность массива.
Выполняемое действие: переопределение
размера массива, с сохранением
предшествующих данных или нет.
Применение: обычно используется
для увеличения размерности массива, и в
тех случаях когда размер массива
предугадать заранее нельзя. В остальных
случаях более предпочтительно
использовать статические массивы.
Примечание: для многомерных
динамических массивов есть одно
ограничение: изменять можно лишь
последнее измерение массива, например: Dim MyArray() As String
ReDim MyArray(1 To 100, 5) 'массив из элементов от 1
до 100 в первом измерении и от 0 до 5 - во
втором (всего 100*6=600 элементов)
ReDim MyArray(1 To 100, 10) 'не вызовет ошибки
ReDim MyArray(1 To 50, 10) 'вызовет ошибку, т.к. можно
переопределить только последнее
измерение.
ReDim MyArray(5 To 100, 10) 'вызовет ошибку, т.к.
нельзя менять начало индексации
элементов.
Синтаксис: UBound( Array, Dimention )
Параметры:
Array - любой массив. Dimention - номер измерения для
многомерных массивов, для одномерных не
используется.
Возвращаемое значение: наибольший
индекс элемента массива SourceArray в
измеренииDimention. Пример:
Dim arLines(5) as String
MsgBox "Наибольший индекс массива: " &
CStr(UBound(arLines))
Применение: вычисление
количества элементов массива в паре с
LBound, в качестве придела в цикле при
переборе элементов массива.
Синтаксис: LBound( Array, Dimention )
Параметры:
Array - любой массив. Dimention - номер измерения для
многомерных массивов, для одномерных не
используется.
Возвращаемое значение: наименьший
индекс элемента массива SourceArray в
измеренииDimention. Пример:
Dim arLines(5) as String
MsgBox "Наименьший индекс массива: " &
CStr(LBound(arLines))
Применение: вычисление
количества элементов массива в паре с
UBound, в качестве начального значения
переменной цикла при переборе
элементов массива.