Визуальное программирование. Состав интегрированной среды разработки VBA

Общая концепция объектно-ориентированного программирования. События. Свойства и методы. Объекты, коллекции, классы

VBA относится к языкам объектно-ориентированного программирования (ООП). Поэтому для создания программ на языке Visual Basic for Applications необходимо знать общие концепции ООП. Суть парадигмы ООП можно сформулировать в нескольких словах: не программы управляют данными, а данные управляют программами. Разумеется, не беспорядочные данные, а данные, связанные друг с другом и описывающие какой-то реальный или воображаемый объект, на базе которого реализована модель того или иного явления природы.

Объектно-ориентрованное программирование (ООП) можно определить как технологию программирования, в которой программа представляется в виде совокупности объектов, обладающих сходными свойствами и набором действий, которые можно с ними производить.

Принято выделять три основных механизма, лежащих в основе ООП:

· инкапсуляция;

· наследование;

· полиморфизм.

И хотя VBA поддерживает только часть перечисленных базовых принципов построения ООП, он является полноценным объектно-ориентированным языком программирования. Рассмотрим основные понятия ООП.

В объектно-ориентированной модели программист оперирует объектами.

Объектом в ООП называется абстрактный тип данных, состоящий из данных (обычно хорошо структурированных) и различных функций, управляющих этими данными.

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

Технология ООП идет дальше – вместе с данными, описывающими какое-то явление, хранится и программный код, описывающий его поведение. Все вместе и называется объектом, а сам принцип объединения в единое целое данных и программного кода, описывающего поведенческие свойства объекта, известен под термином инкапсуляция. Все визуальные объекты, таки как рабочий лист (Worksheet), документ (Document), диапазон (Range), диаграмма (Chart), форма (UserForm) являются объектами. В VBA имеется более 100 встроенных объектов.

Коллекцией (семейством) называется упорядоченный набор однотипных объектов. Коллекция тоже является объектом (объект Collection). Например, объект Workbooks (рабочие книги) содержит все открытые объекты Workbook (рабочая книга). Каждый элемент коллекции нумеруется и может быть идентифицирован либо по номеру, либо по имени. Например, Worksheets(1) обозначает первый рабочий лист активной книги, а Worksheets("Лист1") – рабочий лист с именем Лист1.

С объектом неразрывно связано понятие класса. Класс (class) задает свойства и поведение объектов класса. Каждый объект является экземпляром какого-либо класса. Причем между объектом и классом существуют отношения, аналогичные соотношениям между переменной и ее типом. Например, каждый рабочий лист MS Excel является объектом класса Worksheet. Таким образом, класс – это логическая конструкция, а объект – это его физическое воплощение.

Класс содержит данные и функции, которые обрабатывают данные. Данные называются свойствами класса, а функции – методами класса.

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

Чтобы изменить характеристики объекта, надо изменить значение его свойств.

Синтаксис установки значения свойства:

Объект.Свойство = Значение свойства

В следующем примере изменяется заголовок окна Excel посредством задания свойства Caption объекту Application:

Application.Caption = "Пример"

Свойство можно изменить сразу у всех объектов семейства. В приведенном ниже примере с помощью установки свойству Visible (видимость) значения False (ложь) все рабочие листы активной книги (семейство объектов Worksheets) скрываются:

Worksheets. Visible = False

Метод представляет собой действие, выполняемое над объектом.

Синтаксис применения метода:

Объект.Метод

В данном примере при помощи метода Quit (закрыть) закрывается приложение (объект Application):

Application.Quit

Метод можно применять ко всем объектам семейства. В данном примере к семейству ChartObject (диаграммы) рабочего листа Лист1 применен метод Delete (удалить), который приводит к удалению всех диаграмм с рабочего листа Лист1:

Worksheets("Лист1").ChartObject.Delete

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

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

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

При визуальном подходе к разработке форм не требуется программного задания (хотя это и возможно) их основных свойств (например, ширина или высота, цвет фона и т. п.). Эти свойства мы можем задать при помощи мыши (например, ширину и высоту формы путем операции "перетаскивания" маркеров) или установить их в окне свойств (название формы, цвет фона формы и т. д.). Таким образом, визуальное программирование делает проектирование интерфейса программы более наглядным и быстрым. При этом сохраняется возможность управлять всеми объектами и программно.

Visual Basic for Application – это система программирования, которая используется как единое средство программирования во всех приложениях Microsoft Office. Всякая система программирования включает в себя, по меньшей мере, три составные части:

1. Язык (или языки) программирования, т.е. набор правил, определяющих синтаксис (правила записи) и семантику (правила выполнения) программ.

2. Среду программирования (разработки), т.е. набор инструментов для написания программ, редактирования, отладки и т.п.

3. Библиотеку (или библиотеки) стандартных программ, т.е. набор готовых программ (процедур, функций, объектов и т.д.), которые можно использовать как готовые элементы при построении новых программ.

Среда разработки VBA называется интегрированной средой разработки или IDE (Integrated Development Environment). VBA IDE – это набор инструментов разработки программного обеспечения, таких как редактор Visual Basic (Visual Basic Ediror, VBE), средства отладки, средства управления проектом и т. д. VBE – это окно, содержащее меню, другие окна и элементы, которые применяются при создании проектов VBA. Все приложения, поддерживающие VBA, работают с одним IDE. Таким образом, при переходе в другое основное приложение не требуется много времени, чтобы научиться применять в нем VBA.

Для перехода из окна основного приложения в редактор VBE достаточно нажать комбинацию клавиш Alt+F11 или выполнить команду "Сервис" – "Макрос" – "Редактор Visual Basic" ("Tools" – "Macro" – "Visual Basic Editor").

Интерфейс VBE составляют различные окна, панели инструментов и меню. Основными (открывающимися по умолчанию) являются три окна: окно проекта, окно свойств и окно редактирования кода. Назначение этих и некоторых других компонентов VBE приведено в таб. 2.2.1. Вызвать на экран тот или иной компонент можно с помощью меню "View" ("Вид"). Вид окна редактора Visual Basic представлен на рис. 2.2.1.

Таблица 2.2.1. Назначение компонентов VBE

 

Наименование окна Команда View (Вид) Описание
Project (Проект) Project Explorer (Окно проекта) Предназначено для отображения всех открытых проектов, а также их составляющих: модулей, форм и ссылок на другие проекты
Toolbox (Панель элементов) Toolbox (Панель элементов) Содержит элементы управления для конструирования форм
UserForm Object (Объект) Используется для создания форм путем размещения на них элементов управления
Code (Программа) Code (Программа) Предназначено для просмотра, написания и редактирования программы на языке VBA. Поскольку среда разработки является многооконной, то для каждого модуля проекта можно открыть отдельное окно
Properties (Свойства) Properties (Окно свойств) Отображает свойства выделенных объектов. В этом окне можно задавать новые значения свойств формы и элементов управления
Object Browser (Просмотр объектов) Object Browser (Просмотр объектов) Отображает классы, свойства, методы, события и константы различных библиотек объектов. Используется для быстрого получения информации об объектах
Immediate (Проверка) Immediate (Окно отладки) Предназначено для быстрого выполнения вводимых в него инструкций. В данном окне также выводятся результаты выполнения вводимых инструкций
Locals (Локальные переменные) Locals (Окно локальных переменных) Автоматически показывает все переменные данной процедуры
Watches (Контрольные значения) Watches (Окно контрольных значений) Применяется при отладке программ для просмотра значений выражений

Рисунок 2.2.1. Окно редактора Visual Basic

Окно Project (Окно проекта)

Окно Project (Проект) предназначено для быстрого получения информации о различных составляющих проекта. Такими составляющими являются Forms (Формы), Modules (Модули) и References (Ссылки).

С помощью окна проекта можно добавить или удалить какой-либо объект из проекта. Модули добавляются в проект командой "Insert" – "Module" ("Вставить" – "Модуль"). Формы создаются командой "Insert" – "UserForm" ("Вставить" – "UserForm"), а модули класса командой "Insert" – "Class Module" ("Вставить" – "Модуль класса").

Окно проекта можно использовать также для быстрой навигации по формам проекта и программному коду. Для этого необходимо выбрать в контекстном меню соответственно команды "View Object" ("Объект") или "View Code" ("Программа").

Рисунок 2.2.2. Окно проекта

 

Окно Properties (Окно свойств)

Список свойств выделенного объекта выводится в окне Properties (Свойства). Для того чтобы выделить объект, необходимо с помощью окна проекта выбрать форму и перейти в режим конструктора, используя команду "View Object". Свойства объекта можно упорядочить в алфавитном порядке (Alphabetic (По алфавиту)) или по категориям (Categorized (По категориям)), выбрав соответствующую вкладку. Предусмотрена также возможность получения быстрой справки по какому-либо свойству объекта. Для этого достаточно установить курсор на нужное свойство и нажать клавишу F1.

Object Browser (Окно просмотра объектов)

Окно Object Browser (Просмотр объектов) предназначено для просмотра объектов, доступных при создании программы. Хотя на самом деле в этом окне мы просматриваем не объекты, а структуру соответствующего класса объектов (объектам, классам и другим понятиям объектно-ориентированного программирования посвящена следующая тема). Окно просмотра объектов может использоваться для поиска метода или свойства объекта.

Чтобы найти какое-либо свойство или метод, необходимо выполнить следующую последовательность действий:

1. Откройте в редакторе Visual Basic нужный модуль.

2. Нажмите на панели инструментов кнопку "Object Browser" ("Просмотр объектов").

3. Используя раскрывающийся список "Project" – "Library" ("Проект" – "Библиотека"), расположенный в верхнем левом углу окна просмотра объектов, выберите нужную библиотеку.

4. Отметьте нужный объект в списке "Classes" ("Классы").

5. Используя список "Members Of" ("Компонент"), выберите подходящий метод или свойство.

Для получения сведений о выбранном классе, методе, событии или свойстве нажмите кнопку "Help" ("Справка") в окне Object Browser (Просмотр объектов).

Окно Code (Окно редактирования кода)

Окно Code (Программа) представляет собой текстовый редактор, предназначенный для написания и редактирования кода процедур приложения. Это окно появляется на экране, например, при создании нового модуля. Код внутри модуля организован в виде отдельных разделов для каждого объекта, программируемого в модуле. Переключение между разделами выполняется путем выбора значений из списка "Object" ("Объект"), который находится в левом верхнем углу окна. Каждый раздел может содержать несколько процедур, которые можно выбрать из списка "Procedure" ("Процедура") в правом верхнем углу (на рис. 2.2.5 этот список раскрыт). В окне редактирования доступны два режима представления кода: просмотр отдельной процедуры и всего модуля. Переключение режимов работы окна осуществляется выбором одной из двух кнопок в нижнем левом углу окна редактирования кода (см. рис. 2.2.5).

Интеллектуальные возможности редактора кода:

1. При написании кода пользователю предлагается список компонентов, логически завершающих вводимую пользователем инструкцию.

2. На экране автоматически отображаются сведения о процедурах, функциях, свойствах и методах после набора их имени.

3. Автоматически проверяется синтаксис набранной строки кода сразу после нажатия клавиши Enter. В результате проверки выполняется выделение определенных фрагментов текста:

· красным цветом – синтаксические ошибки;

· синим цветом – зарезервированные ключевые слова;

· зеленым цветом – комментарии.

4. Если курсор расположить на ключевом слове VBA, имени процедуры, функции, свойства или метода и нажать клавишу F1, то на экране появится окно со справочной информацией об этой функции.