Основы офисного программирования и язык VBA

       

Процедуры - свойства


Для того чтобы можно было получить доступ к закрытым свойствам, предусмотрены специальные процедуры - свойства:

  • Property Let позволяет установить новое значение терминального свойства, выполняя операцию Write (присваивание).
  • Property Set выполняет те же действия, что и предыдущая процедура, но применима к свойствам - участникам. Вы понимаете, что в VBA присваивание значений обычным переменным и объектам выполняется двумя различными операторами - Let и Set.
  • Property Get является дополнительной к предыдущим процедурам, выполняя операцию чтения Read. Она применима к терминальным свойствам и свойствам - участникам.

Рассмотрим пять ранее описанных стратегий применения свойств. В первой стратегии Read - Write каждому закрытому свойству будет соответствовать пара взаимно дополняющих процедур - свойств Let (Set) - Get. Эту стратегию мы реализовали для свойств класса "Личность". Стратегия Write-once предполагает, что значение свойства должно быть записано только при первом обращении, а далее не должно изменяться. Для реализации этой стратегии процедуры - свойства Let и Set должны включать в себя код, осуществляющий специальную проверку, проводилось ли ранее присвоение значения свойству. Для объектов это проверка типа "value Is Nothing", для переменных типа Variant - "value = Empty" и так далее. Мы не станем приводить подробный пример, подобную проверку мы осуществляли при работе со свойством Отчество в процедуре WhoIs класса " Личность. В следующих двух стратегиях используется только одна из процедур пары, либо Get, либо Let(Set). Пятая стратегия предполагает, что доступ к свойствам закрыт, и процедуры - свойства Get, Let(Set) в классе вообще не объявляются.

Обратим внимание на одну важную особенность, когда свойство имеет тип Variant, его значениями могут быть как обычные данные (числа, строки), так и объекты. В этой ситуации необходимо реализовать все три процедуры, применяя Let или Set в зависимости от того, с чем мы имеем дело - объектом или переменной.



Содержание раздела