Краткое описание инструмента и ремесла программирования. Степанов А.Г - 71 стр.

UptoLike

71
собой структуру, обращение к элементам которой ведется по принятым для
структуры правилам:
Объект.Свойство = Значение свойства
Поведение объекта в языке VBA задается методами и событиями. По своей
сути метод представляет собой обычную процедуру или функцию. Возможные
методы для объекта также описываются на этапе создания класса. Событие
представляет собой действие, распознаваемое объектом, для которого можно
запрограммировать отклик. Событие вызывается действиями пользователя
(например, щелчок мышью) или генерируются системой (например, деление на
ноль).
Создание класса в языке VBA представляет собой типовую
последовательность действий. Сначала специальной командой создается так
называемый модуль класса и ему присваивается имя, являющееся именем
класса. После этого описываются переменные класса. Обратите внимание
на
то, что при этом описании определяется только потребный объем памяти.
Переменные класса получат конкретные значения адресов памяти машины
только после того, когда на основе класса будут создаваться объекты, причем
каждый объект будет иметь свой индивидуальный набор таких ячеек. Затем
определяется процедура инициализации класса Sub Class_Initialize(), которая
выполняется каждый раз, когда создается
новый объект. Если необходимо, то
может быть создана процедура Sub Class_Terminate(), описывающая действия,
которые надо выполнить перед удалением объекта. После этого создаются
функции вида Property Get, Property Let и Property Set, позволяющие читать и
задавать значения свойств переменных класса. Функции обработки событий
могут быть написаны самостоятельно с использованием аппарата прерываний
процессора, однако удобнее и проще воспользоваться прерываниями,
обрабатываемыми стандартными формами, о которых будет рассказано ниже.
Наконец, создаются методы класса, которые оформляются в виде обычных
процедур Sub.
Пример 2.33. Программа создания класса Ведомость_зарплаты.
Option Explicit
Private Type Запись_Ведомости
Фамилия_И_О As String
Начислено_Ведомость As Currency
Налог_Ведомость As Currency
К_выдаче_Ведомость As Currency
End Type
Dim Ведомость() As Запись_Ведомости
Dim Размер_ведомости As Integer
Private Sub Class_Initialize()
Dim i As Integer, rezult As String, d As Currency
Размер_ведомости = 4
ReDim Ведомость(1 To Размер_ведомости)
Open " Зарплата.hhh" For Input As #1
i = 1
Do Until EOF(1)
Input #1, rezult
Ведомость(i).Фамилия_И_О = rezult
Input #1, d
Ведомость(i).Начислено_Ведомость = d
i = i + 1
Loop