Как и другие переменные, массивы описываются с помощью инструкций Dim, Static, Private или Public. Разница между скалярными переменными (т.е. не массивами) и массивами состоит в том, что для последних надо указывать размер массива. Массив с заданным размером называется массивом фиксированного размера. Массив с переменным размером называется динамическим.
Начало индексации массива с 0 или 1 определяется параметрами инструкции Option Base. Если не указано Option Base 1, нижняя граница индексов массива равняется нулю.
Описание массива фиксированного размера
В следующей строке программы массив фиксированного размера описывается как массив типа Integer, имеющий 11 строк и 11 столбцов:
Dim MyArray(10, 10) As Integer
Первый аргумент представляет строки, а второй - столбцы.
Как и при описании других переменных, если тип данных при описании массива не задается, подразумевается, что элементы массива имеют тип Variant. На каждый элемент массива типа Variant отводится 16 байт. Строковый элемент типа Variant занимает 22 байта. Для написания максимально компактной программы следует явно описывать массивы как принадлежащие к типу данных, отличному от Variant. В следующих строках программы сравниваются размерности нескольких массивов:
' Массив Integer занимает 22 байта (11 элементов * 2 байта).
ReDim MyIntegerArray(10) As Integer
' Массив Double-precision занимает 88 байт (11 элементов * 8 байт).
ReDim MyDoubleArray(10) As Double
' Массив Variant занимает не менее 176 байт (11 элементов * 16 байт).
ReDim MyVariantArray(10)
' Массив Integer занимает 100 * 100 * 2 байт (20,000 байт).
ReDim MyIntegerArray (99, 99) As Integer
' Массив Double-precision занимает 100 * 100 * 8 байт (80,000 байт).
ReDim MyDoubleArray (99, 99) As Double
' Массив Variant занимает не менее 160,000 байт (100 * 100 * 16 байт).
ReDim MyVariantArray(99, 99)
Максимальные размеры массива варьируются в зависимости от имеющейся операционной системы и доступной памяти. Использование массивов, превышающих по размеру объем доступной системной оперативной памяти, замедляет работу программы, поскольку при этом данные должны читаться с диска и записываться на диск.