
Косарев_Экомическая информатика
.pdfПрограммирование |
371 |
I--••£} ThisWorkbook j (Г) Лист1 (Лист1) |.....gj Лист2 (Лист2) j ~ @ ЛистЗ (ЛистЗ) | ffj] Лист4 (Лист4)
*~-@ Лист5 (Задачи Excel) j Ш-ЦЙ Формы
| EHS Модули
Й & wztemplt.xla (WZTEMPLTJCLA)
Рис. 8.1. Окно проекта VBA
В проекте автоматически создается модуль для каждого ра бочего листа и для всей книги. Кроме того, модули создаются для каждой пользовательской формы, класса, макроса. Различа ют стандартные модули и модули объектов. Стандартные моду ли содержат макросы. Они добавляются в проект командой меню Вставка/Модуль.
К модулям объектов относятся модули рабочих книг, листов, форм и классов. Формы создаются командой меню Вставка/ UserForm, а модули класса - командой Вставка/Модуль класса. Удаление модулей из окна проекта производится командой Файл/ Удалить.
Окно редактирования кода. Окно редактирования кода (рис. 8.2) служит для ввода и изменения кода процедур и функ ций приложения. Оно открывается двойным щелчком на знач ке соответствующего файла в окне проекта. В окне редактиро-
372 |
Глава 8 |
Рис. 8.2. Окно редактирования кода
вания кода доступны два режима: просмотр кода процедуры или всего модуля. Переключение режимов производится дву мя способами:
•выбором одной из двух кнопок в нижнем левом углу окна редактирования кода;
•установкой или снятием флажка Просмотр всего модуля вкладки Редактор диалогового окна Параметры. Это окно вы зывается командой Сервис/Параметры (рис. 8.3).
В верхней части окна кода (см. рис. 8.2) помещены два рас крывающихся списка. Левый из них позволяет выбрать управля ющий элемент или форму, а правый - событие, допустимое для выбранного в левом списке объекта. Окно редактирования кода позволяет автоматически завершать написание кода операторов, свойств и параметров, предлагая пользователю список компонен тов (рис. 8.4).
Для автоматического отображения списка компонентов, све дений о процедурах, функциях, свойствах и методах, а также для проверки синтаксиса нужно установить флажки Список компо нентов, Краткие сведения и Проверка синтаксиса в диалоговом окне Параметры (вкладка Редактор).
Редактор кода, кроме перечисленных возможностей, позво ляет получить информацию о ключевом слове, процедуре, функ ции, свойстве или методе. Для этого достаточно установить кур сор на нужное ключевое слово и нажать клавишу [F1].
Программирование |
373 |
Параметры
Ш Ш №
te^xz,
Рис. 8.3. Окно Параметры
Книга! - UserFoiml (Программа)
I (Общая область) |
|
|
Dim НормаПрибыли As |
Я |
|
|
©JAddin ' |
Я Н |
|
©Addins ; |
Щи |
|
©Adjustments |
S I |
P r i v a t e Sub |
UserF< © Application |
1 1 |
End Sub |
©Areas |
ШМ |
©Assistant- |
111 |
|
|
© AutoCorrect |
аШ |
|
|
H |
Рис. 8.4. Список компонентов
374 |
Глава 8 |
Окно редактирования форм. Для создания диалоговых окон приложений VBA служат формы. Редактор форм является основ ным инструментом визуального программирования. Чтобы до бавить форму в проект, нужно выполнить команду меню Вставка/UserForm. После ее выполнения на экране появится пустое окно редактирования форм (форма) и Панель элементов.
Форма - это окно пользовательских интерфейсов. Она мо жет содержать меню, кнопки, окна списков, полосы прокрутки и другие элементы, существующие в программах Windows. VBA предлагает форму UserForml со стандартной сеткой (группа ре гулярно расположенных точек). Сетка служит для удобства раз мещения элементов пользовательского интерфейса. Шаг сетки можно изменить, выполнив команду Сервис/Параметры (вклад ка Общие).
Форма UserForml может быть переименована, и ее размеры могут быть изменены при разработке приложения. При необхо димости можно добавить новые формы.
Панель элементов. Средства управления на панели элементов служат для того, чтобы добавлять новые элементы пользователь ского интерфейса. Любое окно (а значит, и форма) этого интер фейса содержит различные объекты: командные кнопки, поля, надписи, переключатели и т.д. Все они называются элементами управления. Эти элементы добавляются в формы путем перетас кивания их с Панели элементов в поле формы. После того как элементы управления внесены в форму, они становятся объекта ми, или программируемыми элементами пользовательского ин терфейса.
Средства управления в Панель элементов можно добавлять. Для этого нужно выбрать команду меню Сервис/Дополнительные элементы и в появившемся диалоговом окне выбрать нужное сред ство управления (рис. 8.5).
Процесс выравнивания элементов управления в форме мож но облегчить, используя команды меню Формат.
Окно свойств. В этом окне отображаются основные установ ки свойств выбранной формы или элементов управления. Исполь зуя это окно, можно просматривать свойства и изменять их уста новки (рис. 8.6). Чтобы просмотреть свойства выбранного объек та, надо выполнить команду меню Вид/Окно свойств или щелкнуть по кнопке Окно свойств. Окно свойств состоит из двух частей: верхней и рабочей. В верхней части расположен раскры-
Программирование |
375 |
Рис. 8.5. Окно редактирования формы
Рис. 8.6. Окно Свойства
вающийся список, пользуясь которым можно выбрать элемент управления текущей формы или саму форму. Рабочая часть име ет две вкладки: По алфавиту и По категориям, отображающие на бор свойств выбранного объекта по алфавиту или по категори ям. Значения свойств можно изменять либо путем их ввода с кла виатуры, либо используя раскрывающиеся списки.
376 Глава 8
8.3. ОБЪЕКТЫ VBA
8.3.1. ИЕРАРХИЯ ОБЪЕКТОВ MS OFFICE
MS Office построен на принципах объектно-ориентированно го программирования, и его можно рассматривать как семейство классов и объектов.
Во всех приложениях участвует объект Application, представ ляющий само приложение. Это корневой объект, в который вло жены все остальные объекты.
На рис. 8.7 представлена структура объекта-приложения Excel.Application с вложенными в него объектами. Среди этих объектов есть основные, задающие специфику приложения - ра бочие книги Excel (коллекция объектов WorkBook ). Каждый из этих объектов устроен не менее сложно, чем их родитель - объект Application.
Рис. 8.7. Структура объекта Excel.Application
Программирование |
377 |
8.3.2. ПРОСМОТР СТРУКТУРЫ ОБЪЕКТОВ MS OFFICE
Для просмотра объектов в VBA Ottice 97 есть специальное средство Object Browser (окно Просмотр объектов, или Обозре ватель объектов), предназначенное для просмотра структуры классов объектов, их свойств, методов и событий и получения контекстной справки. Object Browser вызывается из редактора VBA. Для этого в меню редактора нужно выбрать пункт Вид и Просмотр объектов (Object Browser) или нажать клавишу [F2].
В левом верхнем углу окна просмотра объектов (рис. 8.8) рас положен раскрывающийся комбинированный список Проекты/ Библиотеки (Project/Library), содержащий имена проектов и биб лиотек, доступных из приложения. В окне Классы (Classes) отобра жаются компоненты класса или проекта - совокупность встроен ных объектов. Если выбрать один из них, то в соседнем окне Ком поненты (Members) отобразятся элементы этого объекта (свойства, методы, события). Каждый элемент - библиотека, класс, проект, свойство, метод, событие, свойство типа перечисления - сопровож дается соответствующим значком. Щелкнув по кнопке Справка, можно быстро получить сведения о выбранном элементе.
Рис. 8.8. Окно Просмотр объектов
378 |
Глава 8 |
Программист может менять список доступных проектов и биб лиотек в окне Проекты/Библиотеки. На самом деле содержание списка определяется ссылками, заданными в окне Ссылки (References) Главного меню редактора VBA. Включив в этом окне ссылки на библиотеку объектов Excel, можно просматривать объекты этой библиотеки в окне просмотра.
Просматривать все объекты в поисках нужного объекта - за нятие довольно утомительное, поэтому в Object Browser имеются инструменты поиска. Чтобы воспользоваться ими, необходимо задать имя элемента поиска в расположенном ниже окне Проек ты/Библиотеки, а затем щелкнуть по расположенной рядом кноп ке поиска или нажать клавишу [Enter]. При необходимости поиск можно осуществлять во всех библиотеках (All libraries). Результа ты поиска отображаются в специальном окне Результаты поиска (Search Results). Взглянув на результат поиска объекта Application в библиотеке Word, вы обнаружите, что этот объект встречается в самых разных классах, встроенных в Word.Application (рис. 8.9).
» Просмотр объектов
IWord
3 <Ы ЕЬ|»| Л*&£№ч
1Application Л_м ' ^ ' " ' • • Я ^ * - ' - - г М Н И » * • нГ( ь |* *" * * " Г & Л У ' Р * *"
|
|
|
|
I Компонент' |
|
•V Word |
. Addln |
n f |
Application |
||
•Ч Word |
. Addlns |
n f |
Application |
||
Н\ Word |
Adjustments |
ES1 |
Application |
||
HTV W n rri |
|
|
|
|
|
|
<глобальные> |
m |
|
|
|
|
Addln |
^ |
Activate |
|
|
Ш |
Addlns |
ESP ActiveDocument |
|
||
Ш |
Adjustments |
ES1 |
Active Printer |
|
|
ЯВIApPfiсation |
ES1 |
ActiveWindow |
|
id |
|
MJMjitojQaMio.) |
* |
AddAddress |
|
nS* Addlns
Рис. 8.9. Панель Результаты поиска
Программирование |
379 |
В самом низу окна просмотра расположено еще одно полез ное средство - окно Детали {Details), отображающее сведения о выбранном элементе. Эта информация может содержать гиперс сылки, щелкая по которым, можно получить дополнительные све дения. В этом окне указывается тип свойств и приводится полное описание всех аргументов (включая обязательные и возможные) методов. Информацию из этого окна можно копировать в буфер или непосредственно перемещать в свой текст.
8.3.3. СВОЙСТВА, МЕТОДЫ И СОБЫТИЯ
Объектам VBA присуща функциональность: они действуют определенным образом и могут откликаться на определенные си туации, т.е. реагировать на события. Свойства объекта определя ют его внешний вид и поведение, а методы объекта - те функции, которые может выполнять данный объект. Методы, по сути дела, представляют собой сегмент программного кода, внедренный в объект.
Свойства любого объекта VBA, в том числе и Application, мож но разделить на две группы: свойства, задающие вложенные объек ты, и терминальные свойства, заданные обычными переменными Visual Basic.
Свойства, задающие вложенные объекты, называют свойства ми-участниками.
Существует определенный формат программного кода, зада ющего установку свойства и использование метода:
|
|
Объект. Свойство = Значение |
|
|
Объект. Метод [Параметр1 [...]] |
Здесь Объект |
- |
имя настраиваемого объекта; |
Свойство |
- |
характеристика, которую нужно изменить; |
Метод |
- |
команда, которая используется для изменения объекта; |
Значение |
- |
новая установка свойства; |
Параметр |
- |
аргумент, используемый методом. |
Например, если X является свойством - участником объекта Application, то обращение к этому свойству возвращает ссылку на объект X.
Обращение Application - X.Y.Z,
где X, Y и Z - свойства-участники,
380 |
Глава 8 |
позволяет добраться до объекта Z, находящегося на третьем уровне вложенности. Обычно цепочка именования начинается спецификатором (объектом) Application, но иногда его можно опустить. Некоторые свойства и методы объекта Application от носятся к глобальным. Для них спецификатор Application раз решается опускать, непосредственно именуя глобальный эле мент. Вот пример нескольких обращений к элементам объекта Application:
Application. ActiveDocument 'Можно короче: ActiveDocument ActiveSheet 'Можно указать и полный путь: Application. ActiveSheet
Главным в иерархии объектов Excel является объект Appli cation (приложение), который представляет само приложение Excel. Этот объект имеет более 120 свойств и 40 методов, кото рые предназначены для установки общих параметров приложе ния Excel. Кроме того, объект Application позволяет вызывать более 400 встроенных функций рабочего листа при помощи кон струкции вида:
АррНсаиоп.ФункцияРабочегоЛиста(Аргументы)
Подчиненными объектами в иерархии объектов являются: объекты семейств WorkBooks (рабочие книги), Worksheets (рабо чие листы) и Range (Диапазон). Основные свойства, методы и со бытия объекта Application приведены ниже.
Свойство |
Описание и допустимые значения |
|
ActiveWorkbook, |
ActiveSheet, |
Возвращают активный объект: рабо- |
ActiveCell, |
ActiveChart, |
чую книгу, лист, ячейку, диаграмму, |
ActiveDialog |
|
диалоговое окно |
Caption |
|
Возвращает текст в строке имени |
|
|
активного окна |
DisplayFormulaBar |
|
True (False) - строка формул выво |
|
|
дится (не выводится) на экран |
DisplayScrolBars |
|
True (False) - полосы прокрутки |
|
|
видны (не видны) в окне Excel |
DisplayStatusBar |
|
True (False)- строка состояний видна |
Heigh, Width, Left, Right, Top |
(не видна) в окне Excel |
|
Высота и ширина окна приложения, |
||
|
|
расстояние от левой, правой и верх |
|
|
ней границы окна приложения от |
|
|
края экрана в пунктах |