Используя код из ОП, работает следующее. В модуле:
Sub TestMe()
Dim x As New clsSubject
x.INN = 3276132761#
Debug.Print x.PINN
End Sub
И это в классе:
Public PINN As String
Property Let INN(val As String)
If IsNumeric(val) And Len(val) = 10 Then
PINN = val
Else
Dim errorMessage As String
errorMessage = val & " is an Invalid value"
Err.Raise vbObjectError + 513, "ClsSubject", errorMessage
End If
End Property
Чтобы запустить код, позвоните TestMe()
.
В общем В этом случае поля класса должны быть закрытыми и доступны через свойства publi c. Например, private PINN as String
, но это только для иллюстрации.