
- •Cвойство Range
- •Первый способ
- •Второй способ
- •Запомните
- •Свойство Cells
- •Замечания
- •Свойство Offset
- •Метод Union и свойство Areas
- •Свойства Column и Row (r/o Integer)
- •Свойства Columns и Rows
- •Свойство CurrentRegion
- •Замечание
- •Свойство Address
- •Методы Методы Select и Activate
- •Метод Clear
- •Задание 1
- •Задание 2
- •Математические функции
- •Функции преобразования данных
- •Функции даты и времени
- •Строковые функции
- •Пользовательские функции
- •Задание
- •Ветвления
- •Ветвления. Сложные условия
- •Оператор выбора
- •Задание 1
- •Цикл со счетчиком
- •Выход из циклов и процедур
- •Вложенные циклы
- •Цикл For Each … Next
- •Одномерные массивы
- •Многомерные массивы
- •Статические и динамические массивы
- •Объявление массивов
- •Изменение размерности динамического массива
- •Использование свойств объектов
- •Использование методов объекта
- •Объектные переменные
- •Ссылка на объекты с помощью With...End With
- •Dim fName As String 'имя файла-копии
- •Работа с коллекциями объектов и контейнерами объектов
- •Задание 1
- •Задание 2
- •Обработчики событий
- •Задание 3
- •Задание 4
- •Задание 5
Задание 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 |
Когда рабочий лист теряет фокус |