Массивы

Массив — это нумерованный набор переменных одного типа. Переменная в массиве называется элементом, а ее позиция в массиве задается индексом. Все элементы массива располагаются в смежных ячейках памяти. Нумерация элементов массива по умолчанию начинается с нуля. С помощью инструкции

Option Base 1

можно указать, что нумерация должна начинаться с единицы, но лучше этого не делать, а привыкнуть к тому, что нумерация начинается с нуля, так как практически во всех языках программирования принято именно так. Если все-таки решили изменить порядок нумерации, то инструкция должна быть расположена в самом начале модуля.

Объявление и инициализация массива

Объявление одномерного массива выглядит следующим образом:

Dim <Имя массива1>([<Начальный индекс> To]<Максимальный индекс>)
                   [As <Тип>]
    [, ...,
    <Имя массиваN>([<Начальный индекс> To]<Максимальный индекс>)
                   [As <Тип>]]

Если параметр <Начальный индекс> не задан, то используется значение из инструкции Option Base. Если инструкция отсутствует, то начальный индекс будет равен нулю. Пример объявления массива из трех элементов, имеющих тип Integer:

Dim Массив(2) As Integer

Обращение к элементам массива осуществляется с помощью круглых скобок, в которых указывается индекс элемента. Обратите внимание на то, что по умолчанию нумерация элементов массива начинается с 0, а не с 1, поэтому первый элемент имеет индекс 0. С помощью индексов можно присвоить начальные значения элементам массива уже после объявления массива:

Dim Массив(2) As Integer
Массив(0) = 10 ' Первый элемент имеет индекс 0!!!
Массив(1) = 12 ' Второй элемент
Массив(2) = 14 ' Третий элемент

Если в программе производится попытка присвоить значение несущестующему элементу массива, то компилятор выведет сообщение о фатальной ошибке и программа будет остановлена.

После объявления массива с его отдельными элементами можно работать как с обычными переменными. Пример:

Dim Массив(2) As Integer, x As Integer
Массив(0) = 10        ' Присваиваем значение по индексу
Массив(1) = 12
Массив(2) = 14
x = Массив(2) + 15    ' Используем внутри выражений
Debug.Print Массив(2) ' Получаем значение

В качестве типа данных можно указывать не только стандартные типы, но и пользовательские типы данных. Создадим пользовательский тип Книга и объявим массив из двух элементов этого типа:

Type Книга
   Название As String
   Автор As String
End Type

Sub Тест()
   Dim Массив(1) As Книга
   Массив(0).Название = "Python. Самое необходимое"
   Массив(0).Автор = "Прохоренок Н.А."
   Массив(1).Название = "Python 3 и PyQt. Разработка приложений"
  Массив(1).Автор = "Прохоренок Н.А."
   Debug.Print Массив(1).Название ' Получаем значение
End Sub

Как видно из примера, вначале производится доступ к элементу внутри массива по индексу, а затем доступ к отдельным полям пользовательского типа, используя точечную нотацию.

Предыдущая статья Все статьи Следующая статья