События, не связанные с объектами
Предшествующие события были связаны с конкретными объектами, такими как Application, Workbook, Sheet. В данной и последующих статьях рассмотрим дополнительные события, которые не имеют прямой связи с объектами: OnTime и OnKey. Доступ к этим событиям осуществляется при помощи методов объекта Application.
Важно отметить, что в отличие от остальных событий, представленных в предыдущих статьях, события OnTime и OnKey программировать следует с использованием кода, размещенного в модуле VBA общего назначения.
Событие OnTime
Событие OnTime срабатывает в определенное время суток. Ниже приведен пример обработки событий в Excel, где окно сообщения отображается ровно в 11:55.
В данном примере процедура УстановитьНапоминание использует метод OnTime объекта Application для настройки события OnTime. Этот метод принимает два аргумента: время (в данном случае 11:55) и имя процедуры, которая будет выполнена в указанное время (в данном случае процедура ОтобразитьНапоминание). После выполнения процедуры УстановитьНапоминание, процедура ОтобразитьНапоминание будет вызвана в 11:55, что приведет к отображению окна сообщения.
Если необходимо запланировать событие относительно текущего времени суток (например, через 40 минут), то в процедуре, которую я назвал УстановитьНапоминание_1 используйте следующий оператор:
Аналогично, для задержки в 10 секунд. Эту процедуру я назвал УстановитьНапоминание_2:
Метод OnTime также может быть использован для вызова процедуры в определенный день и час. Например, следующий код запускает процедуру ОтобразитьНапоминание 3 января 2024 года в 12:01 (в 12-часовом формате).
Метод OnTime включает ещё два дополнительных аргумента. О которых возможно будет написано позже.