Excel. Трюки и эффекты. Алексей Гладкий. Читать онлайн. Newlib. NEWLIB.NET

Автор: Алексей Гладкий
Издательство: Гладкий Алексей Анатольевич
Серия:
Жанр произведения: Программы
Год издания: 0
isbn:
Скачать книгу
какие-либо действия при изменении его значения. Для решения этой проблемы можно использовать второй способ – создание процедур и функций, которые выполняются при установке и получении значений свойств соответственно. Для этих целей в модуле класса применяются обычные объявления процедур и функций, в которых используется ключевое слово Property.

      Для получения значения свойства предназначена функция, объявленная с использованием Property Get:

      [Public | Private] [Static] Property Get Имя_свойства ([Аргументы]) _

      [As Имя_типа]

      [Инструкции]

      [Имя_свойства = Выражение]

      [Exit Property]

      [Инструкции]

      [Имя_свойства = Выражение]

      End Property

      Для присвоения значения свойству, не являющемуся ссылкой на объект, предназначена процедура, объявленная с использованием Property Let:

      [Public | Private] [Static] Property Let Имя_свойства ([Аргументы,]Значение)

      [Инструкции]

      [Exit Property]

      [Инструкции]

      End Property

      Для присвоения значения свойству, являющемуся ссылкой на объект, предназначена процедура, объявленная с использованием Property Set:

      [Public | Private] [Static] Property Set Имя_свойства ([Аргументы,]Значение)

      [Инструкции]

      [Exit Property]

      [Инструкции]

      End Property

      Использование процедур и функций с ключевым словом Property очень удобно для создания свойств только для чтения (для этого свойства не реализуются Property Let и Property Set) и свойств только для записи (не реализуется Property Get).

      Разберем реализацию свойств ObjectRef и ObjectType для рассматриваемого класса Class1 (частная переменная-член objRef используется для хранения установленной ссылки на объект):

      Private objRef As Object

      Property Set ObjectRef(objNewRef As Object)

      ' Задание ссылки хранимого объекта

      Set objRef = objNewRef

      End Property

      Property Get ObjectRef() As Object

      ' Возврат ссылки на хранимый объект

      Set ObjectRef = objRef

      End Property

      Property Get ObjectType() As String

      ' Возврат имени типа хранимого объекта

      ObjectType = TypeName(objRef)

      End Property

      Методы класса

      Любая функция или процедура, описанная в модуле класса, является методом этого класса. Методы делятся на общие (описаны с использованием Public) и частные (описаны с использованием Private).

      Ниже приведена реализация метода для созданного нами класса Class1, при обращении к которому на экран выводится сообщение со значениями атрибутов класса:

      Sub ShowInfo()

      ' Отображение окна со значением свойства strTag и именем типа _

      объекта, на который хранится ссылка

      MsgBox "strTag = " & strTag & vbCrLf & _

      "Object type = " & ObjectType

      End Sub

      Использование класса в программе

      Как было сказано в начале главы, операции со всеми объектами VBA осуществляет только с использованием ссылок. Объявление ссылок на объекты было рассмотрено в разделе, посвященном переменным в VBA. Здесь будет рассмотрено лишь применение объекта созданного ранее класса Class1. Для создания ссылки на объект можно использовать следующее объявление:

      Dim obj As Class1

      После создания ссылки сам объект создается с помощью инструкции Set:

      Set