Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика_4 / Использование Visual Basic for Applications / Использование Visual Basic for Applications.doc
Скачиваний:
100
Добавлен:
23.02.2015
Размер:
731.65 Кб
Скачать

2. Визуальное программирование. Событийно-управляемое программирование

В концепцию объектно-ориентированного подхода хорошо вписывается способ создания программ, называемый визуальным программированием. Его суть заключается в том, что любой визуальный, т. е. видимый, элемент программы представляет собой объект со своими свойствами и методами. Как правило, все визуальные элементы в VBA являются элементами диалога и размещаются на специальной форме. Разработчику нет необходимости создавать новый объект программно – достаточно просто перетащить его с панели элементов на рабочую форму и задать его свойства в соответствующем окне среды разработки, при этом также сохраняется возможность изменять свойства объекта в коде своей программы. Такой способ создания программ делает создание их интерфейса простым и наглядным.

Visual Basic for Applications не является каноническим объектно-ориентированным языком, таким как, например, С++, во многом он не соответствует понятию классического объектного языка. В литературе его называют событийным (Event-Driven) языком программирования, ориентированным на работу с объектами. Рассмотрим основные особенности VBA.

В событийном программировании вводят такое понятие, как событие. Чаще всего события вызываются пользователем, но могут быть вызваны также приложением, другой программой и т.д. У объекта в событийном программировании наряду со свойствами и методами появляется новая характеристика – набор событий, на которые он может реагировать. Этот набор для данного объекта неизменяем, однако то, каким именно образом будет происходить эта реакция, зависит от программиста. Именно он должен написать процедуру-ответ на событие. Такая процедура называется обработчиком события.

Приведем пример. При нажатии на какую-то кнопку с названием CommandButton1 формы мы вызываем для нее событие OnClick. Для того чтобы описать ответ на это событие, программист должен создать процедуру обработки события (обработчик). Эта процедура будет выполняться каждый раз при нажатии на кнопку.

Кроме того, Visual basic for Applications имеет еще одну особенность –особую форму наследования, реализованную в этом языке, называемую встраиванием. При встраивании объект-потомок включает в себя родительский объект в качестве свойства, т. е. как бы “встраивает” его в себя. Таким образом, доступ ко всем свойствам и методам родителя в объекте-потомке осуществляется опосредованно, через обращение к свойству-родителю.

Все классы в Visual Basic for Applications являются потомками одного единственного базового класса – Object. Это позволяет использовать общий для всех объектных переменных тип, который так и называется – Objeсt. Переменной такого типа может быть присвоена ссылка на любой объект VBA.

Еще одно важное замечание: VBA нам позволяет работать с объектами только через ссылки. Вообще говоря, ссылка – это указатель на то место в памяти программы, где хранится объект. Так как любой объект однозначно определяется по своему месту жительства, то ссылка для объектов – это аналог имени для обычной переменной. Разница заключается лишь в способе присваивания значений: для этого используются две различные инструкции – Let и Set (об этом см. ниже).

Обращение к свойствам и методам объекта в языке VBA имеет следующий синтаксис: Объект.Свойство илиОбъект.Метод

Часто бывает так, что свойство объекта само является объектом и имеет свои свойства и методы. В таком случае для обращения к этим свойствам и методам выстраивается иерархическая цепочка: Объект.Свойство1.Свойство2 … и так далее.

Например, для установки размера шрифта выделенной ячейки таблицы MSExcel используется следующая конструкция:Selection.Font.Size = 20, где selection – это объект (выделенная ячейка), Font – ее свойство – шрифт, а Size – свойство этого шрифта – размер. Следует отметить, что тип присваиваемого значения должен быть тот же, что и тип свойства, в данном случае этот тип – целое число (подробнее о типах переменных будет рассказано ниже).

В VBAопределены так называемые глобальные объекты. При вызове таких объектов можно не указывать имя родителя в иерархической цепочке. Например, предыдущее выражение присваивания будет равнозначно следующему:Application.Selection.Font.Size = 20 из-за того, что объектApplication является глобальным.