Структуры
Структура – это сложный тип данных, представляющий собой совокупность переменных, хранящихся и обрабатываемых совместно. Переменные, входящие в состав структуры, называются полями (членами) структуры. В состав структуры могут входить переменные как стандартных, так и определенных пользователем типов данных.
Использование структур в программах зачастую позволяет уменьшить объем и сложность алгоритмов работы с данными. Например, для хранения большого количества записей с именами, адресами и телефонами потребовались бы три массива. При использовании же структуры с полями для имени, адреса и телефона для хранения всей информации потребуется всего один массив (VBA позволяет создавать массивы структур).
Для описания структуры в программе на VBA в блок деклараций модуля необходимо поместить следующую конструкцию:
[Public | Private] Type Имя_структуры
Поле1
Поле2
…
ПолеN
End Type
Ключевые слова Public и Private задают область видимости структуры (по умолчанию используется Public):
• Publiс – применяется для описания структуры, которую можно использовать (объявлять переменные этого типа) во всех модулях проекта; недопустимо в модулях класса;
• Private – применяется для описания структуры, которую можно использовать только в том модуле, где эта структура описана.
После ключевого слова Туре следует имя описываемой структуры. Внутри блока Type-End Туре помещаются объявления переменных-членов структуры. Эти объявления аналогичны объявлениям обычных переменных и отличаются только отсутствием в начале ключевых слов Dim, Static, Private или Public и тем, что в одной строке можно объявлять только одну переменную.
Пусть некоторой компании необходимо хранить данные об имени, фамилии, адресе, телефоне и дате рождения своих сотрудников. Совместно с этими данными нужно хранить информацию о проекте, в котором принимает участие каждый сотрудник. Ниже представлено описание структур, с помощью которых можно реализовать хранение требуемых данных.
Type ПроектИнформация
Название As String
Срок_завершения As Date
End Type
Type Сотрудник
Имя As String
Фамилия As String
Адрес As String
Телефон As String
Дата_рождения As Date
Проект As ПроектИнформация
End Type
Далее на этом примере рассмотрим особенности работы со структурами в программах на VBA.
Объявления переменных, содержащих структуры, выглядят точно так же, как объявления переменных другого типа. Ниже приведен пример объявления одной переменной, содержащей структуру Сотрудник:
Dim worker As Сотрудник
VBA позволяет создавать массивы любых типов данных, в том числе и структур:
Dim workers (15) As Сотрудник
В данном случае будет создан массив из 15 структур типа Сотрудник.
Примечание
При объявлении переменных, содержащих структуры, происходит автоматическая инициализация всех полей созданных структур.