Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

События Объекта Application - файл Введение в визуальное програмирование.doc


События Объекта Application
скачать (146.5 kb.)

Доступные файлы (1):

Введение в визуальное програмирование.doc293kb.15.12.2008 00:04скачать

содержание

Введение в визуальное програмирование.doc

Министерство образования Российской Федерации

Уфимский государственный авиационный технический университет

Кафедра ____________________

КОНТРОЛЬНАЯ РАБОТА

по дисциплине

«Введение в визуальное программирование».

Тема: События объекта Application.

Группа __________ Стерлитамакское представительство УГАТУ.
Студент ________________ ________________ _________________
Рецензент ________________ ________________ _________________


______________

«оценка»


г. Стерлитамак

2008 г.
Содержание

1. Введение.

Что такое VBA?
VBA — относительно легкий язык программирования. Он прост в освоении и позволяет быстро получать ощутимые результаты — конструировать профессиональные приложения, решающие практически все задачи, встречающиеся в среде Windows. При этом создание многих приложений с использованием VBA проще и быстрее, чем при помощи других языков программирования.

VBA применяет технологию визуального программирования, т. е. конструирование рабочей поверхности приложения и элементов его управления непосредственно на экране, а также запись всей программы или ее частей при помощи MacroRecorder.

При беглом знакомстве с технологией визуального программирования может создаться впечатление, что она сводится к записи макросов, помещению в формы элементов управления и определении их связей с макросами. Довольно часто при решении простейших задач так и происходит. Но если требуется создать сколько-нибудь продвинутое приложение с содержательной обработкой данных, то на первый план выступает сам язык VBA.
^ Объекты и их семейства
VBA относится к языкам объектно-ориентированного программирования (ООП). ООП можно описать как методику анализа, проектирования и написания приложений с помощью объектов. Что такое объект? Объект позволяет инкапсулировать данные вместе с кодом, предназначенным для их обработки, т. е. объединить их в нечто целое, именуемое объектом. VBA не является объектно-ориентированном языком в строгом понимании этого слова, однако объектный подход играет в нем большую роль. Все визуальные объекты, такие как рабочий лист (worksheet), диапазон (Range), диаграмма (Chart), форма (userForm), являются объектами. В VBA имеется более 100 встроенных объектов.

Семейство (объект collection) представляет собой объект, содержащий несколько других объектов, как правило, одного и того же типа. Например, объект workbooks (рабочие книги) содержит все открытые объекты Workbook (рабочая книга). Каждый элемент семейства нумеруется и может быть идентифицирован либо по номеру, либо по имени. Например, worksheets (1) обозначает первый рабочий лист активной книги, a worksheets ("Лист1") — рабочий лист с именем лист1.
^ Объекты OLE и ActiveX
В VBA используется механизм OLE (Object Linking and Embedding — связывание и внедрение объектов), который позволяет взаимодействовать с любыми программами, поддерживающими OLE. Примером элементов, которые можно интегрировать при помощи механизма OLE, являются вставляемые объекты OLEObject, создаваемые, например, при помощи программ WordArt, ClipArt и т. д. Все OLE-объекты рабочего листа образуют семейство oLEObjects. Вручную в рабочий лист OLE-объекты вставляются командой Вставка, Объект (Insert, Object) с выбором в появившемся диалоговом окне Вставка объекта (Object) из списка на вкладке Создание (Create New) внедряемого объекта. OLE-объект отличается от обычного тем, что при выборе внедренного объекта (перемещении на него указателя и щелчке кнопкой мыши) активизируется программа, связанная с этим объектом, и меню приложения заменяется меню программы, его создавшей. Теперь можно, не выходя из основного приложения, работать с данным объектом, редактируя и видоизменяя его средствами создавшей его программы. Кроме того, OLE-технологля обладает так называемым свойством Automation, с помощью которого можно устанавливать свойства, применять методы и обрабатывать события внедренных объектов, как обычных объектов приложения.

С 1996 года фирма Microsoft ввела новую терминологию и теперь то, что раньше именовалось OLE-объект, называется объектом ActiveX, a OLE Automation называется ActiveX Automation.
Классы
Важнейшим понятием ООП является класс. Класс обычно описывается, как проект, на основе которого впоследствии будет создан конкретный объект. Таким образом, класс определяет имя объекта, его свойства и действия, выполняемые над объектом. В свою очередь каждый объект, в соответствии с описанным выше, является экземпляром класса.
^ Иерархия объектов
Объектная библиотека VBA располагает более 100 различных объектов, находящихся на различных уровнях иерархии. Иерархия определяет связь между объектами и показывает пути доступа к ним. На рис. 1.1 приведена модель встроенных объектов VBA.


^ Рисунок 1. Иерархия встроенных объектов VBA
Полная ссылка на объект состоит из ряда имен вложенных последовательно друг в друга объектов. Разделителями имен объектов в этом ряду являются точки, ряд начинается с объекта Application и заканчивается именем самого объекта. Например, полная ссылка на ячейку AI рабочего листа лист1 рабочей книги с именем Архив имеет вид:
Application.Workbooks("Архив").Worksheets("Лист1").Range("Al")
Приводить каждый раз полную ссылку на объект совершенно не обязательно. Обычно достаточно ограничиться только неявной ссылкой на объект.
В неявной ссылке, в отличие от полной, объекты, которые активны в данный момент, как правило, можно опускать. В рассмотренном случае, если ссылка на ячейку AI дана в программе, выполняемой в среде Excel, то ссылка на объект Application может быть опущена, т. е. достаточно привести относительную ссылку:
Workbooks("Архив").Worksheets("Лист1").Range("A1")
Если рабочая книга Архив является активной, то ссылку можно записать еще короче:
Worksheets("Лист1").Range("A1")
Если и рабочий лист лист! активен, то в относительной ссылке вполне достаточно ограничиться упоминанием только диапазона A1:
Range("A1")
Методы
Объект сам по себе не представляет большого значения. Намного значительнее то, какие действия можно совершать над объектом, и какими свойствами он обладает. Метод как раз и представляет собой действие, выполняемое над объектом.
Синтаксис применения метода:
Объект.Метод
В данном примере при помощи метода Quit (закрыть) закрывается приложение (объект Application).
Application.Quit
Метод можно применять ко всем объектам семейства. В данном примере к семейству chartobjects (диаграммы) рабочего листа Лист! применен метод Delete (удалить), который приводит к удалению всех диаграмм с рабочего листв Лист1:
Worksheets("Лист!").Chartobjects.Delete
Свойства
Свойство представляет собой атрибут объекта, определяющий его характеристики, такие как размер, цвет, положение на экране и состояние объекта, например, доступность или видимость. Чтобы изменить характеристики объекта, надо просто изменить значения его свойств.
Синтаксис установки значения свойства:
Объект.Свойство = ЗначениеСвойства
В следующем примере изменяется заголовок окна Excel посредством задания свойства Caption объекту Application:
Application.Caption = "Пример"
Свойство можно изменять сразу у всех объектов семейства. В приведенном ниже примере с помощью установки свойству visible (видимость) значения False (ложь) все рабочие листы активной книги (семейство объектов worksheets) скрываются:

^ Worksheets.Visible = False
Среди свойств особое место занимают свойства, возвращающие объект. Приведем наиболее часто употребляемые подобные свойства.


ActiveWindow

Возвращает активное окно Excel

ActiveWorkbook

Возвращает активную рабочую книгу активного окна Excel

ActiveSheet

Возвращает активный лист активной рабочей книги

ActiveDialog

Возвращает активное диалоговое окно активного рабочего листа

ActiveChart

Возвращает активную диаграмму активного рабочего листа

ActiveCell

Возвращает активную ячейку активного рабочего листа



Свойство ActiveCell возвращает активную ячейку активного рабочего листа активной рабочей книги. Следующие три примера возвращают одну и ту же активную ячейку. Обратите внимание на первый из них. Его особенностью является то, что свойство, возвращающее объект, в инструкции записывается без этого объекта. Такой способ записи является допустимым и применяется к широкому классу свойств, возвращающих объекты.
ActiveCell

ActiveWindow.ActiveCell

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

Суть программирования на VBA как раз и заключается в этих двух понятиях: событие и отклик на него. Если пользователь производит какое-то воздействие на систему, скажем нажимает кнопку, тогда в качестве отклика выполняется код созданной пользователем процедуры. Если такой отклик не создан, т. е. не написана соответствующая процедура, то система никак не реагирует на данное событие, и оно остается безответным. Как говорится, на нет и суда нет. Таким образом, действия, происходящие в системе, являются событиями, а отклики на них — процедурами. Этот специальный вид процедур, генерирующих отклик на события, называется процедурами обработки событий. В целом программирование на VBA состоит в создании кода программ, которые генерируют прямо или косвенно отклики на события.
^ 2. Cтруктура редактора VBA
Редактор VBA активизируется командой Сервис, Макрос, Редактор Visual Basic (Tools, Macro, Visual Basic Editor) или нажатием кнопки Редактор Visual Basic (Visual Basic Editor) панели инструментов Visual Basic, а также сочетанием клавиш Alt+F11. Возвратиться из редактора VBA в рабочую книгу можно нажатием кнопки Вид Microsoft Excel (View Microsoft Excel, Alt+F11). Интерфейс VBA состоит из следующих основных компонентов: окно проекта, окно свойств, окно редактирования кода, окна форм, меню и панели инструментов.
^ Окно проекта
Окно проекта в редакторе VBA активизируется выбором команды Вид, Окно проекта (View, Project window) или нажатием кнопки Окно проекта (Project window) В окне проекта (VBAProject) представлена иерархическая структура файлов форм и модулей текущего проекта (рис. 1.2).



Рисунок 2.Окно проекта в редакторе VBA


Формы создаются командой Вставка, UserForm (Insert, UserForm), а модули класса — командой Вставка, Модуль класса (Insert, Module). По мере создания, добавления и удаления файлов из проекта эти изменения отображаются в окне проекта. Отметим, что удаление файла из окна проекта производится выбором значка файла с последующим выполнением команды Файл, Удалить (File, Delete).
В окне проекта выводится проект всех открытых рабочих книг. Это позволяет легко копировать формы и коды из одного проекта в другой, что убыстряет процесс создания новых приложений.
^ Окно для редактирования кода
Перемещение указателя на значок файла в окне проекта и выполнение двойного щелчка кнопкой мыши открывает окно редактора кода (рис.3) для соответствующего модуля.



^ Рисунок 3. Окно редактора кода
Окно редактирования кода служит в качестве редактора для ввода и изменения кода процедур приложения. Код внутри модуля организован в виде отдельных разделов для каждого объекта, программируемого в модуле.

Написание программ существенно облегчается за счет способности редактора кода автоматически завершать написание операторов, свойств и параметров. При написании кода редактор сам предлагает пользователю список компонентов, логически завершающих вводимую пользователем инструкцию. Например, набирая код
Range("A1").
после ввода точки на экране отобразится список компонентов (рис.4), которые логически завершают данную инструкцию. Двойной щелчок на выбранном элементе из этого списка или нажатие клавиши <Таb> вставляет выбранное имя в код программы. При этом использование клавиши <Таb> вместо мышки иногда предпочтительней, т. к. эта клавиша находится прямо под рукой и нажатие на нее производится только одним движением пальца левой руки, что не требует особого времени и усилий.




^ Рисунок 4.Список компонентов
Редактор кода также производит автоматическую проверку синтаксиса набранной строки кода сразу после нажатия клавиши <Enter>. Если после набора строки и нажатия клавиши <Enter> строка выделяется красным цветом, то это как раз и указывает на наличие синтаксической ошибки в набранной строке. Эту ошибку необходимо найти и исправить. Кроме того, если установлен флажок Проверка_синтаксиса (Auto Syntax Check) вкладки Редактор (Editor) диалогового окна Параметры (Options), отображаемого на экране посредством выбора команды Сервис, Параметры (Tools, Options), помимо выделения красным цветом фрагмента кода с синтаксической ошибкой, на экране отображается диалоговое окно, поясняющее, какая возможная ошибка произошла.
^ Окно редактирования форм (UserForm)
Для создания диалоговых окон, разрабатываемых приложений в VBA, используются формы. Редактор форм является одним из основных инструментов визуального программирования. Форма в проект добавляется с помощью команды Вставка, Форма (Insert, Form) или нажатием кнопки Вставить UserForm (Insert UserForm). В результате на экран выводится незаполненная форма с панелью инструментов Панель элементов (Toolbox) (рис. 5).



^ Рисунок 5.Окно редактирования форм и панель инструментов Панель элементов
Окно свойств
В окне свойств перечисляются основные установки свойств выбранной формы или элемента управления. Используя это окно, можно просматривать свойства и изменять их установки. Для просмотра свойств выбранного объекта надо либо щелкнуть кнопку Окно свойств (Properties Window) либо выбрать команду Вид, Окно свойств (View, Properties Window)
^ Окно Просмотр объектов (Object Browser)
Окно Просмотр объектов (Object Browser) вызывается командой Вид, Просмотр объектов (View, Object Browser) или нажатием кнопки Просмотр объектов (Object Browser). В этом окне приведен список всех объектов, которые имеются в системе и которые можно использовать при создании проекта.

Состоит из 3 основных частей:

1. Раскрывающегося списка Проект/Библиотека (Project/ Library) в левом верхнем углу окна. В этом раскрывающемся списке можно выбрать различные проекты и библиотеки объектов.

2. Списка Классы (Classes). После выбора из раскрывающегося списка Проект/Библиотека (Project/Library) просматриваемой библиотеки, например VBA, все классы объектов выбранной библиотеки выводятся в списке Классы (Classes).

3. Списка Компоненты (Members). После выбора класса из списка ^ Классы (Classes) просматриваемой библиотеки, все компоненты выбранного класса выводятся в списке Компоненты (Members).



Рисунок 6 Окно – Просмотр объектов.

^ 3. События объекта Application.

Как мы же знаем событие представляет собой действие, распознаваемое объектом. Так например событие NewWorkbook возникает при создании новой рабочей книги. Приведу основные события объекта Application в таблице.

Событие

Когда возникает событие

Синтаксис

NewWorkbook

При создании новой рабочей книги

NewWorkbook(Wb As Workbook)

WorkbookActivate

При активизации рабочей книги

WorkbookActivate(Wb As Workbook)

WorkbookBeforeClose

Перед закрытием рабочей книги

WorkbookBeforeClose(Wb As Workbook, Cancel As Boolean)

WorkbookBeforePrint

Перед печатью рабочей книги

WorkbookBeforePrint(Wb As Workbook, Cancel As Boolean)

WorkbookNewSheet

При добавлении нового листа в рабочую книгу

WorkbookNewSheet(Wb As Workbook, Sh As Object)

WorkbookOpen

При открытии рабочей книги

WorkbookOpen(Wb As Workbook)

WorkbookDeactivate

Когда активная книга теряет фокус

WorkbookDeactivate(Wb As Workbook)

WorkbookBeforeXmlExport

При экспорте XML данных в книгу

WorkbookBeforeXmlExport(Wb As Workbook, Map As XmlMap, Url As String, Cancel As Boolean)

WorkbookBeforeXmlImport

При импорте XML данных в книгу

WorkbookBeforeXmlImport(Wb As Workbook, Map As XmlMap, Url As String, IsRefresh As Boolean, Cancel As Boolean)

WorkbookSync

И другие














Так после объекта Application в иерархии объектов идет объект Workbook, который представляет собой файл рабочей книги. Он также имеет события.



Событие

Когда возникает событие

Синтаксис

BeforeClose

При закрытии рабочей книги

BeforeClose(Cancel As Boolean)

BeforePrint

Перед печатью рабочей книги

BeforePrint(Cancel As Boolean)

BeforeSave

Перед сохранением рабочей книги

BeforeSave(SaveAsUI As Boolean, Cancel As Boolean)

Deactivate

Когда рабочая книга теряет фокус

Deactivate()

NewSheet

При добавлении нового листа

NewSheet(Sh As Object)

Open

При открытии рабочей книги

Open()

SheetActivate

При активизации любого рабочего листа

SheetActivate(Sh As Object)

Sheet Deactivate

Когда рабочий лист теряет фокус

SheetDeactivate(Sh As Object)


Затем идет объект Worksheet представляющий рабочий лист. Он имеет аналогичные события как и объект Workbook.


^ 4. Использованная литература:


  1. А. Гарнаев – Самоучитель VBA, 2003;

  2. Использование макросов в Excel под редакцией С. Роман. – Спб. БХВ – Питер, 2004, - 507 с.;

  3. Материалы сети «Интернет».



Скачать файл (146.5 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации