Шаг 161.
VBA в MSExcel.
Пользовательские объекты. Создание модулей класса

    На этом шаге мы приведем алгоритм создания пользовательского объекта.

    В VBA наряду с огромным числом встроенных объектов предусмотрена возможность создания пользовательских объектов. Использование таких объектов позволяет сократить текст программы и сделать его более понятным. Пользовательские объекты являются элементами пользовательских классов (или образно говоря, классы являются формами, из которых "пекутся" конкретные объекты). Пользовательские классы конструируются в модулях классов, которые создаются в редакторе Visual Basic выбором команды Вставка | Модуль класса (Insert | Class Module). При создании классов надо предусмотреть его инициализацию, описание свойств и методов, которыми будет наделен объект.

    Опишем процесс создания класса в виде следующей последовательности шагов:

  1. Выберите команду Вставка | Модуль класса (Insert | Class Module). Откроется окно нового модуля класса.


    Рис.1. Окно нового модуля класса и окно Propertis

  2. По нажатию клавиши F4 попадете в окно Propertis, где свойству Name можно присвоить имя класса. Имя модуля класса является именем класса объектов.
  3. В разделе описания модуля объявите переменные уровня модуля, которые используются как "значения свойств".
  4. Инициализируйте класс при помощи процедуры Private Sub Class_Initialize. В этой процедуре надо указать значения, принимаемые по умолчанию переменными уровня модуля, описывающими "значения свойств".
  5. При помощи процедур Property Let объявите имена свойств, значениями которых являются числовые данные, а при помощи процедур Property Set объявите имена свойств, значениями которых являются объекты. Если какое-то свойство — только для чтения, то для него не надо составить процедуру Property Let.
  6. При помощи процедур Property Get установите возможность считывания значения свойств.
  7. Создайте методы класса. Методы создаются при помощи обычных процедур и функций. Если метод возвращает число, то для его конструирования используется функция, а в остальных случаях — процедура.
  8. Допустимо также создание процедуры Private Sub Class_Terminate для удаления объекта из памяти по завершению работы с ним.

    На следующем шаге мы рассмотрим процедуры Property Let, Property Set и Property Get.




Предыдущий шаг Содержание Следующий шаг