Классы и объекты
Давайте рассмотрим следующую задачу: допустим, мы полностью определили класс Book (в качестве домашнего задания исправьте это "допустим" на "с легкостью") и перед нами стоит проблема упорядочения все нарастающих сведений о книгах, да так, чтобы в этой системе можно было легко выполнить поиск, чтение и запись. Конечно, располагая имеющимися на данный момент обучения средствами, мы могли бы создать массив объектов класса Book. Но подобная конструкция не отвечает нашим возросшим требованиям, например добавление и удаление книг, их поиск потребуют специальных средств (создание специальных функций, проверка и т. д.).
Для решения подобной проблемы в VBA присутствует особый класс collection, который позволяет очень быстро и удобно решить проблему построения динамических структур данных.
Семейством (Collection) называется упорядоченный набор объектов. В принципе объекты могут быть разных классов, но, как правило, встречаются семейства однородных объектов. Грубо говоря, семейство представляет собой сплав динамического массива и записи, что позволяет, с одной стороны, перенумеровать все элементы семейства, а с другой, иметь прямой доступ к объектам – элементам семейства – по значению определенного поля, называемого ключом. Ключ – это строковое выражение, которое может быть использовано вместо индекса для доступа к элементу семейства.
Как же устроен этот чудо-класс? Класс collection имеет одно свойство Count и три метода – Add, Item и Remove.
Свойство count очень простое, оно возвращает количество элементов семейства (то есть количество объектов, включенных в семейство в данный момент).
Метод Add (элемент (,ключ] [, до] [, после}) добавляет объект в семей-ство. Его обязательным аргументом является элемент. Он, как вы можете догадаться, добавляет в семейство элемент. Параметр ключ задает ключ, по которому можно будет произвести поиск этого элемента. Параметры до и после указывают на то, перед каким или после какого элемента добавляется новый. По умолчанию элемент добавляется в конец семейства.
Метод Remove (ключ) удаляет элемент из семейства. Параметр ключ – это ключ или индекс, указывающий на удаляемый элемент. Заметьте, что при удалении элемента из семейства не остается дыр: индексы перенумеровываются, значение свойства count уменьшается на единицу.
Метод item (ключ) возвращает значение элемента семейства с ключом ключ. Как в случае с методом Remove, параметр ключ может быть как ключом, так и индексом.
Давайте запрограммируем решение вышерассмотренной задачи, используя знания о семействе. В этом примере мы объявляем семейство Books и инициализируем его, добавляя три объекта. После того как семейство инициализировано, мы удаляем один элемент и выводим оставшиеся элементы.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
Программа 20.29. Объявление семейства.
Sub BooksCollection() Dim Books As New Collection Dim Novikov As New Person Dim Vba As New Book Novikov.perslnit "Novikov", #10/10/1951#, TrueVba.booklnit "VBA и разработка приложений в Office 2000", Novikov Books.Add Vba, "VBprog"Dim Office As New Book Office.booklnit "Microsoft Office 2001 в целом", Novikov Books.Add Office, "off"Dim Stroustrup As New Person Dim С As New Book Stroustrup.perslnit "Stroustrup", #11/25/1947# C.booklnit "C++ Programming", Stroustrup Books.Add C, "Cprog", 2 Books.Remove "Cprog"For i = 1 To Books.Count Books.Item(i).bookPrint Next i End SubНа этом мы заканчиваем описание языка VBA, считая, что вы готовы к его полноценному использованию, и переходим к описанию редактора Visual Basic Editor.
