Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

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

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

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

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

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

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

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

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

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

    Метод Add

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

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

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

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

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

    Метод Item

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

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

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

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

    Метод Remove

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

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

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

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

    Свойство Collection.Count

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

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

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

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

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

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


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

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

    1. В примере 3 пропущена строка между 5й и 6й:

      Без нее сообщение об ошибке будет показываться каждый раз )

    2. Добрый день. Спасибо большое за Ваш труд. Подскажите пожалуйста, а можно ли сравнивать коллекции друг с другом?
      Например, мне нужно сравнить n диапазонов , и из всех выделить только те данные, которые присутствуют в каждом из множества диапазонов.
      Цикл в цикле отпадает из-за множественности диапазонов, пытаюсь сообразить что ещё можно приспособить…
      Или взять за основу одну коллекцию (первый диапазон), а оттуда удалять все значения, не найденные в последующих диапазонах?

    Обсуждение закрыто.