Самоучитель VBA


         

Пример создания класса



Рассмотрим пример создания класса Вектор, моделирующего двумерный вектор. У объектов класса вектор будут определены три свойства: координата абсциссы, координата ординаты и длина вектора (это свойство является свойством только для чтения). Кроме того, для объектов класса вектор будут определены два метода, первый из которых возвращает вектор, являющийся результатом покомпонентного произведения вектора на число, а второй — результат скалярного произведения двух векторов.

Итак, в модуле класса, у которого установлено свойство Name, равное Вектор, наберите следующий код:

'

' X - координата абсциссы

' У - координата ординаты

'

Dim X, Y As Double

'

Public Property Get Абсцисса() As Double

'

' Возвращает значение свойства Абсцисса

'

Абсцисса = X End Property

Public Property Get Ордината () As Double

'

' Возвращает значение свойства Ордината

'

Ордината = Y

End Property

'

Public Property Let Абцисса(ByVal НоваяАбсцисса As Double)

'

' Устанавливает значение свойства Абсцисса

'

If Not IsNumeric(НоваяАбсцисса) Then

MsgBox "Абсцисса не является числом", vblnformation, "VBA"

Exit Property

End If

X = НоваяАбсцисса

'

End Property

'

Public Property Let Ордината(ByVal НоваяОрдината As Double)

'

' Устанавливает значение свойства Ордината

If Not IsNumeric(НоваяОрдината) Then

MsgBox "Ордината не является числом", vblnformation, "VBA"

Exit Property

End If

Y = НоваяОрдината End Property

'

Public Property Get Длина() As Double

'

' Возвращает длину вектора. Это свойство только для чтения

'

Длина = Sqr(X ^ 2 + Y ^ 2)

End Property

'

Public Sub ПрибавитьВектор(ByVal ДругойВектор As Вектор)

'

' Покоординатное сложение двух векторов

X = X + ДругойВектор.Абсцисса Y = Y + ДругойВектор.Ордината

End Sub

'

Public Sub УмножитьНаЧисло(ByVal Число As Double)

'

' Покоординатное умножение вектора на число

'

If Not IsNumeric(Число) Then

MsgBox "Число, на которое умножается вектор," & Chr(13) & "на самом деле не число", vblnformation, "VBA"

Содержание  Назад  Вперед