Перейти к содержимому

VBA Excel. Объект Collection (создание, методы, примеры)

Создание объекта Collection с помощью кода VBA Excel. Методы коллекции и синтаксис выражений с ними. Свойство Count и примеры кода.

  1. Создание объекта Collection
  2. Методы и свойство коллекции
  3. Примеры кода с объектом Collection
Collection – это объект, представляющий из себя упорядоченный набор данных (коллекцию), на который можно ссылаться как на одно целое. Элементы коллекции никак между собой не связаны и могут иметь разные типы данных.

Создание объекта Collection

Создать новый экземпляр Collection в коде VBA Excel можно двумя строками:

Dim myColl As Object
Set myColl = New Collection

или одной строкой:

Dim myColl As New Collection

Лист автоматической вставки объектов, методов и свойств (лист подсказок) предоставит при написании кода VBA Excel простой доступ к методам Add, Item, Remove и свойству Count объекта Collection:

Лист подсказок отображается автоматически после ввода точки или, в иных случаях, вызывается сочетанием клавиш «Ctrl+Пробел».

Методы и свойство коллекции

Метод Add

Метод Add добавляет новый элемент в объект Collection.

Синтаксис метода Add:

Collection.Add Элемент, [Ключ], [До], [После]

Компоненты метода Add:

  1. Collection – обязательный компонент, представляющий выражение (переменную), возвращающее объект Collection.
  2. Элемент – обязательный аргумент, представляющий выражение любого типа, возвращающее элемент, который необходимо добавить в коллекцию.
  3. Ключ – необязательный аргумент, представляющий строковое выражение, задающее уникальный ключ, который может использоваться вместо индекса позиции для доступа к элементу коллекции.
  4. До* – необязательный аргумент, указывающий на позицию существующего элемента в коллекции, перед которым будет добавлен новый элемент.
  5. После* – необязательный аргумент, указывающий на позицию существующего элемента в коллекции, после которого будет добавлен новый элемент.

* Аргументы «До» и «После» не могут применяться одновременно. Если аргументу «До» или «После» присвоено числовое значение, оно должно быть в пределах диапазона от 1 до значения свойства Collection.Count. Если это строка, она должна соответствовать одному из ключей существующих в коллекции элементов.

Метод Item

Метод Item возвращает элемент объекта Collection по индексу позиции или по ключу.

Синтаксис метода Item объекта Collection:

Collection.Item (Index)

Компоненты метода Item:

  • Collection – обязательный компонент, представляющий выражение (переменную), возвращающее объект Collection.
  • Index – обязательный аргумент, представляющий выражение, возвращающее номер (индекс) позиции элемента коллекции или его уникальный ключ.

Метод Remove

Метод Remove удаляет элемент из объекта Collection по индексу позиции или по ключу.

Синтаксис метода Remove объекта Collection:

Collection.Remove (Index)

Компоненты метода Remove:

  • Collection – обязательный компонент, представляющий выражение (переменную), возвращающее объект Collection.
  • Index – обязательный аргумент, представляющий выражение, возвращающее номер (индекс) позиции элемента коллекции или его уникальный ключ.

Свойство Collection.Count

Свойство Count объекта Collection возвращает количество элементов в коллекции.

Примеры кода с объектом Collection

Пример 1
Создание нового экземпляра объекта Collection, добавление в коллекцию трех элементов, определение количества элементов в коллекции, извлечение одного и того же элемента по индексу и по ключу:

Sub Primer1()
'Создаем новый экземпляр
'объекта Collection
Dim myColl As New Collection
'Добавляем три элемента
myColl.Add "Первый элемент"
myColl.Add "Второй элемент", "Ключ 2"
myColl.Add "Третий элемент"
'Определение количества элементов
MsgBox myColl.Count
'Извлечение одного и того же элемента
'коллекции по индексу и по ключу
MsgBox myColl.Item(2) & _
" (извлечен по индексу)"
MsgBox myColl.Item("Ключ 2") & _
" (извлечен по ключу)"
End Sub

Пример 2
Добавление элементов в коллекцию с использованием аргументов «До» и «После»:

Sub Primer2()
Dim myColl As New Collection
'Добавляем три первых элемента
myColl.Add "Второй элемент"
myColl.Add "Третий элемент"
myColl.Add "Пятый элемент"
'Следующий элемент вставляем перед первым
myColl.Add "Первый элемент", , 1
'Следующий элемент вставляем после третьего
'с учетом добавленного предыдущей строкой
myColl.Add "Четвертый элемент", , , 3
'Извлекаем первый и четвертый элементы
MsgBox myColl.Item(1)
MsgBox myColl.Item(4)
End Sub

Пример 3
Генерация ошибки при добавлении в коллекцию нового элемента с неуникальным ключом:

Sub Primer3()
Dim myColl As New Collection
On Error GoTo Instr
myColl.Add "Первый элемент", "Ключ"
myColl.Add "Второй элемент", "Ключ"
Instr:
MsgBox "Произошла ошибка: " & Err.Description
End Sub

Эта особенность объекта Collection используется для отбора уникальных значений из списка элементов.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег [vb] и по окончании кода - [/vb].