События объекта Worksheet
События на уровне рабочего листа возникают в случае его активизации или деактивизации, изменений в нем самом или в сводных таблицах.
Событие Activate
Событие Activate возникает, когда лист становится текущим. Напишем программу, которая выполняется при активизации листа Лист1 и выводит на экран его имя:
Private Sub Worksheet_Activate()
MsgBox "Активный лист - " & ActiveSheet.Name
End Sub
Для того чтобы ввести эту программу:
1. В окне проекта щелкните Лист1(Рис. 11‑2Рис. 10‑2).
2. В списке объектов выберите WorkSheet, а в списке процедур – событие Activate (Рис. 11‑2)
Рис. 11‑2.
3. Введите код.
4. Перейдите в Excel и протестируйте программу. Обратите внимание: при щелчке по Лист2 сообщение не выводится!
Событие Deactivate
Событие Deactivate возникает, когда лист становится неактивным. Для Лист1 введите следующий код и протестируйте работу программы:
Private Sub Worksheet_Deactivate()
MsgBox ActiveSheet.Name & " стал неактивным!"
End Sub
Событие SelectionChange
Событие SelectionChange(в самом простом случае) возникает тогда, когда текущей становится другая ячейка (либо в результате щелчка мышкой по другой ячейке, либо после нажатия клавиши [Enter], либо после нажатия клавиш передвижения курсора).
Для Лист2 напишем программу, которая выводит адрес текущей ячейки. Для этого:
1. В модуле Лист2 наберите следующий код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "Адрес текущей ячейки - " & ActiveCell.Address
End Sub
2. Протестируйте работу программы:
щелкая мышкой по разным ячейкам;
передвигая курсор клавишами передвижения курсора;
завершив ввод информации в ячейку с помощью клавиши [Enter];
завершив ввод информации в ячейку с помощью кнопки Ввод в строке формул (зеленая галочка). Обратите внимание: в этом случае текущей осталась прежняя ячейка –процедура не выполняется.
Домашнее задание №1
1. Напишите программу ОткрытиеКниги, которая:
1) открывает файл C:\St\Случайные числа.xls;
2) активизирует лист Случ. числа. В случае отсутствия листа выдать соответствующее сообщение и завершить выполнение программы;
3) в первом столбце находит первую пустую ячейку. Для этого воспользуйтесь управляющей конструкцией While–Wend(см. 8.3 из курса лекций):
НомерСтроки = 1
While Trim(Cells(НомерСтроки,1).Value) <> “”
НомерСтроки = НомерСтроки + 1
Wend
Обратите внимание на встроенную функцию Trim, которая удаляет пробелы с обеих сторон строкового значения. Здесь она используется для того, чтобы ячейку, в которой содержится пробел, тоже считать пустой (у некоторых пользователей есть привычка удалять содержимое ячейки с помощью клавиши Пробел);
4) разыгрывает 5 случайных чисел и помещает их в 5 ячеек 1-го столбца, начиная с найденной ячейки;
5) cохраняет измененный файл;
6) выводит сообщение: Случайные числа разыграны!
2. На основе программы ОткрытиеКниги напишите программу ОткрытиеКнигиМод, в которой:
– прежде чем открывать книгу C:\St\Случайные числа.xls, проверьте, в каком состоянии она находится: существует, закрыта или открыта. Блок проверки «открыта ли книга?» оформите в виде подпрограммы, которая должна быть универсальной для любой книги;
– розыгрыш 5 чисел также оформите в виде подпрограммы.
3. На основе программы СлучайныеЧисла напишите программу
СлучайныеЧислаМод, в которой:
– если файл C:\St\Случайные числа.xls не существует, выполняется программа СлучайныеЧисла, созданная в 2.1
– в противном случае выполняется программа ОткрытиеКнигиМод.
Вызов обеих программ оформите как вызов подпрограмм.
4. На основе программ СлучайныеЧислаМод и УдалениеФайла напишите программу ЗаменаФайла, в которой:
1) если файл C:\St\Случайные числа.xls не существует, выполняется программа СлучайныеЧисла;
2) в противном случае выдается сообщение об его существовании и запрос на замену:
§ если пользователь щелкает по кнопке Да, то файл удаляется, а затем выполняется программа СлучайныеЧисла;
§ если пользователь щелкает по кнопке Нет, то выполнение программы прекращается.
Вызов программы СлучайныеЧисла оформите как вызов подпрограммы.
5. Протестируйте работу программ в разных режимах, когда книга открыта, закрыта, или её не существует. Обратите внимание на ситуацию, когда книга открыта, в неё были внесены изменения, а в настоящий момент она не активна.
Домашнее задание №2 и №3. Типовые варианты.
Требования к оформлению ДЗ 2 и 3
Отчет по ДЗ 2 и 3 должен быть сдан в электронном и печатном виде и включать в себя:
1. Титульный лист (пустые строки недопустимы! Вспоминаем интервалы! J).
2. Оглавление.
3. Постановку задачи.
4. Листинг программы, напечатанный в редакторе VBA (или в редакторе Word: шрифт – Courier, 10 пунктов).
5. План тестирования программы.
6. Придуманное вами задание.
7. Главы должны быть пронумерованы. Стиль заголовков – Заголовок 1. Если в главах имеются параграфы, то стиль заголовка должен соответствовать их уровню.
8. Электронная версия отчета должна быть оформлена согласно стандартам и принципам, изложенным в курсе «Офисные программные пакеты».
Вариант 1.
Домашнее задание №2
Написать программу, которая формирует список уволившихся сотрудников института по факультетам.
Постановка задачи:
1. В базе данных Excel Кадры.xls содержатся данные о сотрудниках института. БД хранятся в папке C:\Институт и содержат следующую информацию: