Читаем VBA для чайников полностью

За неимением места здесь не обсуждаются приемы сортировки элементов словарей и выбора подмножеств элементов, удовлетворяющих заданным критериям. Замечу лишь, что такие типичные для баз данных функции реализовать со словарями достаточно просто. Подробные инструкции и примеры программного кода вы найдете в статье Bruce McKinney, Understanding the Dictionary Class, Visual Basic Programmer's Journal, July 1999, (издательство Fawcette Technical Publications), доступной также через Internet по адресу www.vbpj.com.

<p>Пользовательские объекты</p>

Освоив использование встроенных объектов VBA и других объектных библиотек, вы, наверное, захотите создать свои собственные объекты. Хотя можно достичь немалого и с помощью обычных процедур типа Sub и Function, выделение части программного кода в виде объектов обладает реальными преимуществами.

* Размещение всего программного кода, обрабатывающего некоторое множество данных, внутри отдельного объекта уменьшает вероятность внесения ошибок при модификации программы.

* Программа будет легче для чтения и понимания.

* Можно создать сколько угодно копий объекта, причем для создания каждой копии понадобится всего пара коротких операторов.

* Упоминание преимуществ полиморфизма, вероятно, потребует дополнительных разъяснений, но... использование одних и тех же свойств и методов с разными классами объектов все же оказывается удобным. А именно это подразумевает полиморфизм. К сожалению, я не могу тут развивать эту тему, но вы должны знать, что существует такая мощная техника программирования. Подробно полиморфизм обсуждается в книгах, цель которых - более глубокое изучение VBA.

Как вы уже знаете (если прочитали главу 12), объект состоит из данных (свойств объекта) и программного кода, изменяющего эти данные (методов объекта). Поскольку свойства являются просто переменными, а методы - процедурами, создание программного кода, задающего объект, не такая уж сложная задача. Но при этом необходимо следовать определенным правилам, чтобы VBA мог распознать, что именно вы собираетесь сделать. Следующие несколько разделов посвящены описанию этих правил.

<p>Создание модулей классов</p>

В VBA класс является шаблоном, по которому создаются подобные объекты. Класс определяет, какие свойства, методы и события должен иметь объект и как должен "вести" себя каждый из этих компонентов.

Чтобы создать класс, начните со вставки нового модуля класса в VBA-проект (для чего выберите Insert=Cl ass Module). Окно модуля класса выглядит и работает точно так же, как и обычное окно программного кода. Прежде чем двигаться дальше, задайте имя нового класса в строке (Name) в окне свойств.

<p>Компоненты определения класса</p>

Типичный класс имеет три главных компонента.

* Объявленные локальными переменные, предназначенные для использования внутри объекта.

* Открытые процедуры свойств, позволяющие процедурам из стандартных модулей прочитать или изменить текущие значения свойств.

* Открытые процедуры методов, задающие действия, выполняемые методами объекта.

Представленное ниже определение простого класса Thermostat включает все три этих компонента. Сам по себе пример не предназначен для выполнения каких-либо полезных задач, но он работает и есть на Web-странице на случай, если вы захотите его испытать. Если же вы предпочтете набрать программный код самостоятельно, с помощью окна свойств назовите модуль класса Thermostat, а затем введите в окне его программного кода следующее:

Private sngDegrees As Single ' переменная свойства

' Программный код процедуры свойства Let Temperature:

Public Property Let Temperature(ByVal snglnput As _

Single)

sngDegrees = snglnput

End Property

' Программный код процедуры свойства Get Temperature:

Public Property Get Temperature() As Single

temperature = sngDegrees

End Property

' Программный код процедуры метода CalculateEnergyUse:

Public Sub CalculateEnergyUse()

Const cstConversionFactor =2.45

Dim dblResult

dblResult = sngDegrees * 365 * cstConversionFactor

MsgBox "Годовой расход энергии на поддержание " & _

"установок термостата оценивается в " & _

dblResult & " Ватт."

End Sub

<p>Объявление переменных класса</p>

Для объявления переменных, которые понадобятся в нескольких свойствах или методах, используйте раздел Declarations в самом начале модуля класса. Всегда объявляйте эти переменные как локальные ( Private ), ведь объекты в основном предназначены для того, чтобы запретить программе получить прямой доступ к данным. Переменные, которые будут использоваться только в одном свойстве или методе, должны там и объявляться.

Для каждого из свойств объекта нужно объявить как минимум по одной переменной. Имя переменной не должно совпадать с именем свойства (чуть позже я объясню, как задать имя свойства).

Можно объявить и другие данные, которые объект будет использовать внутри себя и которые будут недоступными для других частей вашей программы.

<p>Создание процедур свойств</p>
Перейти на страницу:

Все книги серии Для чайников

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных