
- •Диаграммы и графики
- •Создание диаграммы
- •Типы диаграмм
- •Исходные данные
- •Параметры диаграммы
- •Элементы диаграмм
- •Редактирование диаграммы
- •Интерактивная диаграмма
- •Прогнозирование с использованием линий тренда
- •Автоматизация работы в Excel при помощи макросов
- •Visual Basic for Application
- •Концепция VBA
- •Работа с объектами
- •Объекты Excel.
- •Формы и элементы управления.
- •Интерфейс среды Visual Basic for Application
- •Запуск и отладка программ на VBA
- •Язык Бейсик
- •Отличия Бейсика от Паскаля
- •Идентификаторы, переменные, массивы
- •Операции, выражения, операторы
- •Операторы ветвлений
- •Конструкция If . . . Then
- •Конструкция If . . . Then . . . Else
- •Циклы
- •Конструкция For . . . Next.
- •Конструкция Do...Loop
- •Примеры расчетов на VBA
- •Нахождение минимального элемента массива.
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Литература
3 Visual Basic for Application
3.1 Концепция VBA
3.1.1 Работа с объектами
При создании приложения в VBA в основном происходит работа с объектами. Можно использовать объекты, предоставляемые VBA: элементы управления, формы
иобъекты доступа к данным. Можно также управлять объектами других приложений из приложения VBA. Можно даже создавать свои собственные объекты
иопределять для них дополнительные свойства и методы.
Что такое объект?
Объект - это комбинация кода и данных, которую можно рассматривать как одно целое. Объект может быть частью приложения, как элемент управления или форма. Целое приложение также может быть объектом.
Происхождение объектов
Каждый объект в VBA определен классом (class). Класс используется для создания объектов и определяет их характеристики. Приведем два примера взаимоотношений между классами и объектами в VBA:
Элементы управления Панели элементов управления в VBA представляют классы. Объект, известный как элемент управления, не существует, пока он не нарисован на форме. Когда создается элемент управления, создается копия, или экземпляр (instance) класса элемента управления
Форма, используемая во время разработки, является классом. Во время выполнения VBA создает экземпляр класса формы
Окно Properties (Свойства) отображает класс и свойство Name (Имя) объектов в разработанном приложении VBA.
Все объекты создаются как идентичные копии своих классов. Свойства индивидуальных объектов можно изменять. Например, если на форме созданы три кнопки управления, каждый объект кнопка управления является экземпляром класса CommandButton. Объекты одного класса используют общий набор характеристик и способностей (свойств, методов и событий). Каждому объекту дано свое имя, их можно по отдельности заблокировать и разблокировать, поместить в разные места на форме и т. д.
Понятие "класс объекта" не часто упоминается. Просто надо помнить, что, например, термин "элемент управления списком" означает "экземпляр класса
ListBox".
Что можно делать с объектами?
Объект предоставляет в распоряжение разработчика готовый исполняемый код. Например, вместо того чтобы программировать собственные диалоги File Open (Открыть файл) и File Save (Сохранить файл), можно использовать элемент управления общим диалогом (объект, предоставляемый VBA). Можно написать собственный код управления планированием и ресурсами, но вместо этого проще использовать объекты Calendar (Календарь), Resources (Ресурсы) и Task (Задача), предоставляемые Microsoft Project (Проект).
Основы работы с объектами
Объекты VBA поддерживают свойства, методы и события. В VBA данные объекта (установки или атрибуты) называются свойствами, тогда как процедуры, которые оперируют с объектом, называются его методами.
Событие - это действие, распознаваемое объектом, например, щелчок кнопкой мыши или нажатие клавиши клавиатуры, и программист может написать код, реагирующий на это событие.
Можно изменять характеристики объекта, меняя его свойства. Рассмотрим радио: одно из свойств радио - громкость (volume). В терминах обсуждаемой темы можно сказать, что радио обладает свойством "Volume", которое регулируется изменением его значения. Предположим, что можно установить регулятор громкости радио в положения от 0 до 10. Если бы радио управлялось с помощью VBA, можно было бы написать код процедуры, которая изменяла бы значение свойства "Volume" от 3 до 5, чтобы радио работало громче:
Radio.Volume = 5
Кроме свойств объекты обладают методами. Методы - это такая же часть объектов, как и свойства. В целом, методы - это действия, которые можно выполнить, тогда как свойства - это атрибуты, которые устанавливаются или восстанавливаются.
Например, чтобы позвонить по телефону, надо набрать номер (dial). Можно было бы сказать, что телефоны обладают методом "Dial", и использовать этот синтаксис для набора номера 555111:
Phone.Dial 5551111
Объекты также обладают событиями. События инициируются, когда изменяются некоторые свойства объекта. Например, радио может иметь событие "VolumeChange" (Изменение громкости). Телефон может иметь событие
"Ring"(Звонок).
Основными объектами являются Книга, Лист и Ячейка. Также могут быть использованы формы и элементы управления, размещаемые на них: кнопки, метки, текстовые поля.
Формы - это объекты, которые обладают свойствами, определяющими их внешний вид, методами, определяющими их поведение, и событиями, которые определяют их взаимодействие с пользователем. Установкой свойств формы и разработкой кода VBA для отклика формы на события создается объект, удовлетворяющий требованиям определенного приложения.
Элементы управления - это объекты, содержащиеся внутри объектов-форм. Каждый тип элемента управления имеет свой собственный набор свойств, методов и событий, что делает его пригодным для определенной цели. Некоторые элементы управления, используемые в приложениях, лучше всего подходят для ввода или отображения текста. Другие элементы управления обеспечивают доступ к другим приложениям и данным процессов таким образом, как будто бы удаленное приложение является частью самого приложения.
Иерархия объектов
Иерархия объектов (object hierarchy) определяет, как объекты связаны друг с другом и как к ним можно обратиться. Например, Объект Книга (Book) содержит объект Лист (Sheet). Объект Лист содержит объект ячейка (Cell). Соответственно, чтобы обратиться к ячейке “A1”, находящейся на Листе1 книги 1, необходимо написать

WorkBooks(“Книга1”).Sheets(1).Cells(1,1). Если данная книга является текущей, то достаточно Sheets(1).Cells(1,1).
Аналогично объект Форма (UserForm) может содержать объекты кнопка
(CommandButton), текстовое поле (TextBox) и метку (Label).
В таблице приведены примеры типов объектов, которые можно использовать в
VBA:
|
|
Объект |
Описание |
||
|
|
Форма |
|
|
Каждая форма в проекте VBA является отдельным объектом |
|
|
Кнопка |
|
|
Элементы управления на форме, например кнопки управления и |
|
|
управления |
|
|
рамки, являются объектами |
|
|
|
|
|
|
Текстовое поле
Метки
Книга
Лист
Ячейка
Рассмотрим основные свойства, события и методы объектов Excel и элементов управления.
3.1.2 Объекты Excel.
Обращение к Листу
ActiveSheet – обращение к активному листу
Sheets(<ид. листа>) – обращение к листу, определенному идентификатором листа. Идентификатор листа – это либо название, либо номер листа
Обращение к ячейке
ActiveCell – активная ячейка
Cells (<row>, <col>) – ячейка с номером строки row, с номером столбца col Range (<диапазон>) - диапазон ячеек
Ячейки находятся на листах и соотвественно, чтобы обратиться к ячейке, находящейся на другом листе, необходимо указать лист. Ячейки имеют свойства row (номер строки) и column (номер столбца).
Покажем возможность обращение к ячейкам на примерах: ActiveSheet.Range(“A1:B3”) – диапазон ячеек A1:B3 на активном листе Sheets(1).Cells(2,3) – ячейка на 2-й строке 3-м столбце первого листа книги Sheets(“Лист2”).Range(“B3”) – ячейка B3 на листе с названием Лист2 ActiveCell.row – номер строки активной ячейки
События Книги и Листа
Главное событие Книги Open –открытие
Листы имеют несколько важных событий: Activate – активизация листа
Deactivate – переход на другой лист SelectionChange – изменение выделения Change – изменение
и метод
Activate - активизация
3.1.3 Формы и элементы управления.
Основные свойства элементов управления:
Name – уникальное имя объекта, используется для обращения в коде к объекту
Caption – заголовок объекта, позволяет изменить заголовок формы, надпись на метке или кнопке
Left – расстояние слева от края родительского объекта Top – расстояние сверху от края родительского объекта Width – ширина объекта
Height – высота объекта
Пример:
UserForm1.CommandButton1.Caption = “Кнопка” – установить надпись на кнопке CommandButton1 “Кнопка”.
Более подробную информацию по используемому вами объекту вы можете получить в окне свойств.
Основные события
Click – щелчок мыши
DblClick – двойной щелчок мыши MouseMove – движение мышью над объектом
Все события используемого объекта можно видеть в выпадающем списке событий в окне кода формы.
Основные методы формы
Show - показать Hide – убрать Пример:
UserForm1.Show – показать форму UserForm1