Шаг 3 - Коллекции в VBA

В любом языке программирования массивы (коллекции) занимают большое место. При этом именно понятие коллекция принимает широкое распространение. В Visual C++ понятие коллекция аналогична шаблону. При программировании на VBA понятие коллекции приобретает большой смысл. Коллекции встречаются на каждом шагу.

Обычно колекции имеют 4 метода:

Add		
Remove
Count
Item

Было бы наверно логично подумать, что в MS OFFICE есть специализированный класс колекций, на подобии шаблонов в С++. Но это не так. Для каждого типа объектов объявляется своя коллекция. Так же есть некоторые коллекции, которые отличаются названием методов. Всё это немного странно, но что сделаешь :-)

Для понимания работы с коллекциями создадим имитирующий коллекцию книг в Excel:

Sub Test()
	Dim MyCollection As New Collection
	With MyCollection
		.Add ("Книга 1")
		.Add ("Книга 2")
		.Add ("Книга 3")
		MsgBox (Str(.Count))
		MsgBox (.Item(1))
		.Remove (1)
		MsgBox (.Item(1))
	End With
End Sub

Первой строкой мы создаем переменную типа коллекция. Дальше мы используем оператор With, чтобы не использовать многократно MyCollection и тем самым сократить код. Методом Add мы добавляем данные в коллекцию. Count возвращает Вам количество элементов в коллекции. Item возвращает элемент коллекции, а Remove удаляет по индексу.

Метод Remove опасен тем, что он может выйти за пределы массива и вы получите подобную ошибку.

3_1.gif (2753 b)

Обработку ошибок мы расмотрим позже.

Заканчивая краткое описание коллекций следует отметить, что они могут содержать и элементы разных типов, что отличает их от массивов. Размер коллекции динамически изменяется. При удалении дырок не обнаруживается. Лафа вообще после C++ :-))


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.