Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA-Laboratorny_praktikum.doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
4.56 Mб
Скачать

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

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

Событие Activate

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

Private Sub Worksheet_Activate()

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

End Sub

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

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

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

Рис. 11‑38.

  1. Введите код.

  2. Перейдите в 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

  1. Протестируйте работу программы:

  • щелкая мышкой по разным ячейкам;

  • передвигая курсор клавишами передвижения курсора;

  • завершив ввод информации в ячейку с помощью клавиши [Enter];

  • завершив ввод информации в ячейку с помощью кнопки Ввод в строке формул (зеленая галочка). Обратите внимание: в этом случае текущей осталась прежняя ячейка – процедура не выполняется.

Домашнее задание №1

  1. Напишите программу ОткрытиеКниги, которая:

  1. открывает файл C:\St\Случайные числа.xls;

  2. активизирует лист Случ. числа. В случае отсутствия листа выдать соответствующее сообщение и завершить выполнение программы;

  3. в первом столбце находит первую пустую ячейку. Для этого воспользуйтесь управляющей конструкцией WhileWend (см. 8.5 из курса лекций):

НомерСтроки = 1

While Trim(Cells(НомерСтроки,1).Value) <> ""

НомерСтроки = НомерСтроки + 1

Wend

Обратите внимание на встроенную функцию Trim, которая удаляет пробелы с обеих сторон строкового значения. Здесь она используется для того, чтобы ячейку, в которой содержится пробел, тоже считать пустой (у некоторых пользователей есть привычка удалять содержимое ячейки с помощью клавиши Пробел);

  1. разыгрывает 5 случайных чисел и помещает их в 5 ячеек 1-го столбца, начиная с найденной ячейки;

  2. cохраняет измененный файл;

  3. выводит сообщение: Случайные числа разыграны!

  1. На основе программы ОткрытиеКниги напишите программу ОткрытиеКнигиМод, в которой:

  • прежде чем открывать книгу C:\St\Случайные числа.xls, проверьте, в каком состоянии она находится: существует, закрыта или открыта. Блок проверки «открыта ли книга?» оформите в виде подпрограммы, которая должна быть универсальной для любой книги;

  • розыгрыш 5 чисел также оформите в виде подпрограммы.

  1. На основе программы СлучайныеЧисла напишите программу СлучайныеЧислаМод, в которой:

  • если файл C:\St\Случайные числа.xls не существует, выполняется программа СлучайныеЧисла, созданная в 3.1

  • в противном случае выполняется программа ОткрытиеКнигиМод.

Вызов обеих программ оформите как вызов подпрограмм.

  1. На основе программ СлучайныеЧислаМод и УдалениеФайла напишите программу ЗаменаФайла, в которой:

  1. если файл C:\St\Случайные числа.xls не существует, выполняется программа СлучайныеЧисла;

  2. в противном случае выдается сообщение об его существовании и запрос на замену:

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

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

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

  1. Протестируйте работу программ в разных режимах, когда книга открыта, закрыта, или её не существует. Обратите внимание на ситуацию, когда книга открыта, в неё были внесены изменения, а в настоящий момент она не активна.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]