Найти тему
VBA Excel с нуля

VBA Excel № 100.1 Событие OnTime (часть 1).

Скриншот с моего ноутбука
Скриншот с моего ноутбука

События, не связанные с объектами

Предшествующие события были связаны с конкретными объектами, такими как 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 включает ещё два дополнительных аргумента. О которых возможно будет написано позже.