Функции, предназначенные для работы с массивами

Для работы с массивами предназначены следующие функции:

  • IsArray(<Переменная>) — возвращает значение True, если переменная содержит массив, и False — в противном случае:
Dim Массив As Variant, x As Variant
Массив = Array(10, 20)
Debug.Print IsArray(Массив) ' True
Debug.Print IsArray(x)      ' False
  • LBound(<Массив>[, <Размерность>]) — возвращает индекс нижней границы массива;
  • UBound(<Массив>[, <Размерность>]) — возвращает индекс верхней границы массива. Пример:
Dim Массив(10) As Integer
Debug.Print LBound(Массив) ' 0 или 1 (зависит от Option Base)
Debug.Print UBound(Массив) ' 10

В параметре <Размерность> можно указать номер размерности для которой функции LBound() и UBound() будут возвращать значения:

Dim Массив(0 To 10, 2 To 5) As Integer
Debug.Print LBound(Массив, 1) ' 0
Debug.Print UBound(Массив, 1) ' 10
Debug.Print LBound(Массив, 2) ' 2
Debug.Print UBound(Массив, 2) ' 5

С помощью инструкции Erase <Массив> можно присвоить начальные значения всем элементам статического массива или полностью удалить динамический массив. Элементы числовых статических массивов и массивов строк фиксированной длины получат значение 0, элементам массивов строк переменной длины будет присвоена пустая строка, а элементы массива типа Variant будут иметь значение Empty. Чтобы использовать динамический массив после удаления, необходимо заново создать его с помощью оператора ReDim. Пример:

Dim СМассив(1) As Integer, ДМассив As Variant
СМассив(0) = 1        ' Статический массив
СМассив(1) = 2
Debug.Print СМассив(0) & " - " & СМассив(1) ' 1 - 2
Erase СМассив         ' Обнуляет массив
Debug.Print СМассив(0) & " - " & СМассив(1) ' 0 - 0
ДМассив = Array(1, 2) ' Динамический массив
Debug.Print ДМассив(0) & " - " & ДМассив(1) ' 1 - 2
Erase ДМассив         ' Удаляет массив

Visual Basic for Applications (VBA)
Самоучитель по VBA

Помощь сайту

Yandex-деньги: 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

Поиск по сайту в Яндексе