Если вы работали с другими языками программирования, то, вероятно, знакомы с массивами. Массив - это совокупность переменных, имеющих одинаковый тип данных и объединенных под общим именем. Элементы массива идентифицируются порядковым номером. Синтаксис объявления массива следующий:
Dim имя_массивa(n) As тип
где n - количество элементов в массиве
Например, если вы хотите создать массив, содержащий имена 10-ти студентов, используйте следующий оператор:
Dim sStudents(9) As String
Отметьте, что в скобке стоит число 9, а не 10. Это потому, что первый порядковый номер в перечислении элементов массива по умолчанию равен 0. Массивы эффективно применять при работе с однотипной информацией. Предположим, вам надо обработать 15 тестовых оценок. Для этого можно создать 15 переменных с помощью 15 операторов Dim. Но можно создать массив, содержащий все тестовые оценки, и использовать при этом только один оператор Dim:
Dim iTestScores(14) As Integer
В основном вы будете использовать одномерные массивы, подобные приведенным выше, но VBA поддерживает и многомерные массивы. Двумерный массив, например, по своей структуре напоминает обычную таблицу. Чтобы создать двумерный массив-таблицу размером 4×4, примените следующий оператор:
Dim iTable(3, 3) As Integer
Существует возможность при объявлении массива не указывать его размер. Это позволяет задать размер массива после начала выполнения программы. Например, ваше приложение позволяет пользователю создавать собственные таблицы, предлагая ввести количество столбцов и строк для новой таблицы. Применив динамически изменяемый массив, вы не только создадите такую таблицу, но и позволите пользователю добавлять или удалять строки и столбцы в этой таблице в процессе выполнения приложения. Если при объявлении массива не указаны его размеры, то такой массив называется динамическим. Синтаксис объявления динамического массива имеет следующий вид:
Dim имя_массива() As тип
Для задания размера динамического массива во время выполнения приложения используется оператор ReDim:
ReDim имя_массива(размер)
Аргумент размер задает новый размер массива. Для того чтобы не потерять текущее содержимое массива при задании его нового размера, в операторе ReDim используется ключевое слово Preserve: