Использование массивов
Имеется возможность описать массив для работы с набором значений одного типа данных. Массив представляет собой одну переменную с множеством ячеек памяти для хранения значений, тогда как обычная переменная имеет только одну ячейку, в которой может храниться только одно значение. При необходимости сослаться на все элементы массива можно ссылаться на массив как целое. Возможны также ссылки на его отдельные элементы.
Например, для записи денежных затрат на каждый день календарного года можно описать один массив с 365 элементами, вместо того, чтобы описывать 365 переменных. Каждый элемент массива содержит одно значение. Следующая инструкция описывает массив curExpense с 365 элементами. По умолчанию индексация массива начинается с нуля, так что верхняя граница массива - 364, а не 365.
Dim curExpense(364) As Currency
Чтобы задать значение отдельного элемента, надо указать его индекс. В следующем примере всем элементам массива присваивается исходное значение 20.
Sub FillArray()
Dim curExpense(364) As Currency
Dim intI As Integer
For intI = 0 to 364
curExpense(intI) = 20
Next
End Sub
Изменение нижней границы индексов
Для того, чтобы изменить индекс первого элемента массива, по умолчанию равный 0, на 1, можно использовать инструкцию Option Base в начале модуля. В следующем примере инструкция Option Base изменяет индекс первого элемента , а инструкция Dim описывает массив curExpense с 365 элементами.
Option Base 1
Dim curExpense(365) As Currency
Допускается также явное задание нижней границы индексов массива с помощью предложения To, как продемонстрировано в следующем примере.
Dim curExpense(1 To 365) As Currency
Dim strWeekday(7 To 13) As String
Запоминание значений Variant в массивах
Создать массив значений Variant можно двумя способами. Первый способ - это описание массива с типом данных Variant, как показано в следующем примере:
Dim varData(3) As Variant
varData(0) = "Мария Петрова"
varData(1) = "Зеленая, 19"
varData(2) = 38
varData(3) = Format("06-09-1952", "General Date")
Другой способ - это присвоение массива, возвращаемого функцией Array, переменной Variant, как продемонстрировано в следующем примере.
Dim varData As Variant
varData = Array("Иван Петров", "Зеленая, 19", 38, _
Format("06-09-1952", "General Date"))
Независимо от способа создания массива значений Variant его элементы нумеруются индексами. Например, следующая инструкция может быть добавлена к любому из предыдущих примеров.
MsgBox "Записаны данные для " & varData(0) & "."
Использование многомерных массивов
В языке Visual Basic допускается описание массивов, имеющих до 60 размерностей. Например, следующая инструкция описывает двумерный массив 5 на 10.
Dim sngMulti(1 To 5, 1 To 10) As Single
Если рассматривать этот массив как матрицу, то его первый аргумент представляет строки, а второй - столбцы.
Для обработки многомерных массивов используются вложенные инструкции For...Next. В следующей процедуре двумерный массив заполняется значениями типа данных Single.
Sub FillArrayMulti()
Dim intI As Integer, intJ As Integer
Dim sngMulti(1 To 5, 1 To 10) As Single
' Заполнение массива.
For intI = 1 To 5
For intJ = 1 To 10
sngMulti(intI, intJ) = intI * intJ
Debug.Print sngMulti(intI, intJ)
Next intJ
Next intI
End Sub