Массивы VBA (ч.3)
Функции LBound, UBound
Функции LBound, UBound возвращают нижнее и верхнее граничные значения индексов статического или динамического массива.
Синтаксис:
LBound (array_Name [, dimension])
UBound (array_Name [, dimension])
array_Name - имя массива
dimension - целое число (необязательный аргумент). Определяет измерение массива, для которого надо получить верхний или нижний предел. При отсутствии dimension возвращается предел для первого измерения массива.
Нижеприведенный листинг демонстрирует использование функций LBound, UBound:

Очистка и удаление массивов при помощи Erase
Оператор Erase позволяет выполнять очистку для статических массивов и удаление - для динамических.
Когда элементы массива заполнены, данные в массиве остаются до тех пор, пока пользователь не присвоит новые значения элементам массива или пока VBA не освободится от массива. Зачастую бывает, что в дальнейших вычислениях динамический массив ни при каких обстоятельствах использоваться не будет, поэтому нецелесообразно "держать" его в памяти компьютера, т.к. это может сказаться на скорости работы программы. Или же может понадобиться очистить все значения в статическом массиве, устанавливая числовые значения на 0, а строковые - на пустые строки. Это можно осуществить при помощи вложенных циклов - как было показано на предыдущем уроке. Но, можно сделать гораздо проще:
Erase My_Array
Данный оператор обнуляет (если массив статический) или очищает (если массив динамический) массив My_Array.
Оператор Erase удаляет из памяти динамические массивы, освобождая область памяти, ранее используемую этим массивом. При удалении динамического массива с помощью оператора Erase необходимо повторно создать массив с помощью оператора ReDim перед тем, как можно будет использовать этот определенный динамический массив снова.
Поведение оператора Erase для статических массивов зависит от конкретного типа элементов массива (см. таблицу):
Тип статического массива | Действие оператора Erase |
Любой числовой тип | Устанавливает элементы массива на 0 |
Любой строковый тип | Устанавливает элементы массива на строку нулевой длины, а для строк фиксированной длины - как все символы пробела |
Тип Variant | Устанавливает элементы массива на Empty |
Тип Object | Устанавливает элементы массива на Nothing |
Любой пользовательский тип | Устанавливает каждую переменную в пользовательском типе индивидуально: численные - на 0; строковые - на строки нулевой длины; Variant - Empty; Object - Nothing |