Страницы← предыдущаяследующая →
Для добавления элементов в коллекции реализован метод Add, имеющий следующий формат:
Ссылка. Add Элемент [, Ключ][, Добавить_перед][, Добавить_после]
Единственным обязательным параметром метода Add является значение добавляемого элемента. Элемент может быть константой или переменной любого типа, кроме типа, определенного пользователем. При добавлении элемента можно указать ключ, который будет однозначно идентифицировать элемент в коллекции. Ключ – это любое значение типа Variant.
По умолчанию новые элементы добавляются в конец коллекции. Для изменения порядка добавления элементов используются параметры Добавить_перед и Добавить_после, с помощью которых указывается номер или ключ того элемента, перед которым или после которого нужно вставить новый элемент. Нумерация элементов в коллекции начинается с единицы.
Ниже приведены примеры инструкций, добавляющих новые элементы в коллекцию:
col.Add «Value1», «Key1»
col.Add «Value2», «Key2»
col.Add «Value0»,"Key1"
Для определения количества элементов в коллекции используется свойство только для чтения Count. При его получении возвращается значение типа Long. Пример получения количества элементов коллекции приведен ниже:
lngCount = col.Count
Для удаления элементов из коллекции используется метод Remove:
Ссылка. Remove Номер
Единственным параметром метода Remove является номер элемента в коллекции или его ключ. Например, для удаления значения «Value2», добавленного в коллекцию при рассмотрении метода Add, можно использовать инструкцию
col.Remove 3
или
col.Remove «Кеу2»
Для получения значений элементов коллекции используется метод Item, который возвращает значение соответствующего элементу типа:
Ссылка. Item (Номер)
Единственным параметром метода I tern является Номер – это ключ элемента или его порядковый номер в коллекции. Например, для получения значения элемента с ключом «Keyl» (или номером 2) можно использовать следующие инструкции:
val = col.Item(«Key1»)
val = col.Item(2)
Следует отметить, что Item является для объекта Collection методом по умолчанию, поэтому значения элемента с ключом «Key 1» можно получать и таким образом:
val = col(«Key1»)
val = col(2)
Язык VBA предоставляет программисту достаточно большие возможности для создания и использования специфических типов данных: структур и перечислений.
Структура – это сложный тип данных, представляющий собой совокупность переменных, хранящихся и обрабатываемых совместно. Переменные, входящие в состав структуры, называются полями (членами) структуры. В состав структуры могут входить переменные как стандартных, так и определенных пользователем типов данных.
Использование структур в программах зачастую позволяет уменьшить объем и сложность алгоритмов работы с данными. Например, для хранения большого количества записей с именами, адресами и телефонами потребовались бы три массива. При использовании же структуры с полями для имени, адреса и телефона для хранения всей информации потребуется всего один массив (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 структур типа Сотрудник.
Примечание
При объявлении переменных, содержащих структуры, происходит автоматическая инициализация всех полей созданных структур.
Для доступа к содержимому полей структуры необходимо использовать символ «.» (точка). Ниже приведен пример получения значений полей с именем и телефоном сотрудника:
strFirstName = worker.Имя
strPhone = worker.Телефон
При доступе к массиву структур получение значений полей будет выглядеть следующим образом:
strFirstName = workers(15). Имя
strPhone = workers(15). Телефон
Получить значения полей вложенной структуры можно следующим образом (Проект – вложенная структура):
strName = worker.Проект. Название
datDate = worker.Проект. Срок_завершения
При работе со структурами необходимо помнить, что каждое поле структуры – это переменная, которой можно присваивать значение. Ниже приведен пример заполнения структуры с информацией о сотруднике:
worker.Имя = «Иван»
worker.Фамилия = «Иванов»
worker.Адрес = «ул. Первомайская, д. 100, кв. 5»
worker.Телефон = «(095) 200 00 00»
worker.Дата_рождения = «12.03.1978»
worker.Проект. Название = «План здания»
worker.Проект. Срок_завершения = «15.09.2005»
Содержимое полей структур можно использовать в любых корректных выражениях, например:
strFullName = "Имя: " & worker.Имя & ", фамилия: " & worker.Фамилия
При использовании заполненной чуть выше структуры (с информацией о сотруднике Иванове) строка strFullName в результате обработки выражения получит значение" Имя: Иван, фамилия: Иванов".
Страницы← предыдущаяследующая →
Расскажите нам о найденной ошибке, и мы сможем сделать наш сервис еще лучше.
Спасибо, что помогаете нам стать лучше! Ваше сообщение будет рассмотрено нашими специалистами в самое ближайшее время.