Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Косарев_Экомическая информатика

.pdf
Скачиваний:
170
Добавлен:
03.05.2015
Размер:
9.05 Mб
Скачать

Программирование

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

Высота и ширина окна приложения,

 

 

расстояние от левой, правой и верх­

 

 

ней границы окна приложения от

 

 

края экрана в пунктах