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

Задание 1

Написать макрос, который открывает книгу “Сотрудники”, создает новую книгу “Копия” и копирует из книги “Сотрудники” лист “Штат” после первого листа книги “Копия”.

Предполагается, что книга “Сотрудники” находится в той же папке, что и файл с книгой, содержащей макрос.

Задание 2

Переставить листы в обратном порядке.

Обработчики событий

Событие— это действие, распознаваемое объектом, для которого можно запрограммировать отклик.

Например, в качестве события можно использовать открытие или закрытие документа, щелчок мыши, нажатие клавиши.

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

Обработать можно события следующих обьектов Excel:

  • Application

  • WorkBook

  • WorkSheet

  • Chart

Обработчики событий дают возможность привязать свой код к действиям пользователя, например к открытию или закрытию книги, активации таблицы, сохранению документа ... Обработчики событий создаются с модулях лисов или книги (в зависимости от того, с каким объектом будет связано это событие. Чтобы создать процедуру обработки события, откройте редактор Visual Basic (Alt + F11), выберите например Лист1 и из двух раскрывающихся списков сверху выберите объект и событие. Редактор автоматически создаст процедуру для обработки события. Вам остается только написать в ней свой код (см. рисунок).

Однако в некоторых ситуациях события для объектов не появляются в окне редактора кода (например, это справедливо для очень важного объекта Application). В этом случае необходимо явно объявить этот объект с событиями — при помощи ключевого слова WithEvents, например так:

Public WithEvents App As Word.Application

Делается это в области объявлений модуля (Declarations). После этого в редакторе кода Visual Basic появляется новый объект App со всеми необходимыми событиями.

Многие события имеют параметры. Это выглядит вот так: Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean) ...... End Sub

Здесь Target - диапазон ячеек, подвергшийся процедуре правого клика, Cancel - параметр, позволяющий отменить событие, если установить его в True.

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

Событие

Описание

NewWorkbook

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

WorkbookActivate

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

WorkbookBeforeClose

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

WorkbookBeforeSave

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

WorkbookDeactivate

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

WorkbookNewSheet

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

WorkbookOpen

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

События объекта Workbook

Событие

Описание

BeforeClose

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

BeforeSave

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

Deactivate

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

NewSheet

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

Open

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

SheetActivate

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

SheetDeactivate

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

События объекта Worksheet

Событие

Описание

BeforeClose

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

BeforePrint

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

BeforeSave

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

Deactivate

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

NewSheet

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

Open

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

SheetActivate

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

Sheet Deactivate

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