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

События на уровне рабочего листа возникают в случае его активизации или деактивизации, изменений в нем самом или в сводных таблицах.

Событие Activate

Событие Activate возникает, когда лист становится текущим. Напишем программу, которая выполняется при активизации листа Лист1 и выводит на экран его имя:

Private Sub Worksheet_Activate()

MsgBox "Активный лист - " & ActiveSheet.Name

End Sub

Для того чтобы ввести эту программу:

1. В окне проекта щелкните Лист1(Рис. 11‑2Рис. 10‑2).

2. В списке объектов выберите WorkSheet, а в списке процедур – событие Activate (Рис. 11‑2)

События объекта Worksheet - student2.ru

Рис. 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) в противном случае выдается сообщение об его существовании и запрос на замену:

События объекта Worksheet - student2.ru

§ если пользователь щелкает по кнопке Да, то файл удаляется, а затем выполняется программа СлучайныеЧисла;

§ если пользователь щелкает по кнопке Нет, то выполнение программы прекращается.

Вызов программы СлучайныеЧисла оформите как вызов подпрограммы.

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:\Институт и содержат следующую информацию:

Наши рекомендации