HTML, Excel, Word, SEOОсновы VBA ⇒ Массивы VBA

Основы VBA

Самоучитель vba: Теория
..Первый макрос в Word
..Этапы записи макроса
..Запись макроса в Word
..Запись макроса в Excel
..Код макроса
..Выполнение макроса
..Типы данных VBA
..Переменные VBA
..Константы VBA
..Совместимость типов данных
..Арифметические операторы
..Логические операторы
..Строковые операторы
..Функции VBA ч.1
..Функции VBA ч.2
..Примеры использования функций
..Функции host-приложений
..Функции-процедуры
..Пользовательские функции в Excel
..Операторы ветвления: простой выбор
..Операторы ветвления: сложный выбор
..Использование MsgBox
..Прерывание процедур и функций
..Необязательные аргументы функций
..Циклы VBA ч.1
..Циклы ч.2
..Циклы ч.3
..Массивы VBA ч.1
..Массивы ч.2
..Массивы ч.3
..Управление файлами с помощью VBA
Самоучитель vba: Практика
Игра: Цепная реакция
Приложения
..Сумматор
..Наклейки
..Восьмерка
..Менеджер почты
Надстройки
..DEF
..SortSheets
..HideSheet

 

Массивы 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



В начало страницы



В начало страницы