VBA Excel. Метод Application.OnTime

Выполнение процедуры VBA Excel без аргументов в назначенное время или через определенный промежуток времени с помощью метода Application.OnTime.

Синтаксис метода Application.OnTime

Параметры метода Application.OnTime

Основные параметры:

  1. EarliestTime – время, когда необходимо выполнить указанную процедуру.
  2. Procedure – имя выполняемой процедуры.

Процедура Procedure не должна иметь аргументов и не может быть объявлена в модуле формы.

В качестве аргументов параметра EarliestTime используются следующие функции:

  • TimeValue(“hh:mm:ss”) – чтобы запланировать выполнение указанной процедуры в определенное время суток.
  • Now + TimeValue(“hh:mm:ss”) – чтобы запланировать выполнение указанной процедуры по истечении заданного времени с момента запуска процедуры с методом Application.OnTime.

Дополнительные параметры:

  1. LatestTime – интервал времени, в течение которого можно запустить указанную процедуру, если Microsoft Excel в назначенное время выполняет другую процедуру. По умолчанию указанная процедура будет запущена в любом случае после завершения предыдущей процедуры. Подробнее об этом читайте на сайте разработчика.
  2. Schedule – если задано значение True, будет запланировано выполнение указанной процедуры, False – очистка ранее установленной процедуры. Значение по умолчанию – True.

Параметр LatestTime я не тестировал, а вот любое применение параметра Schedule в значении False у меня в Excel 2016 вызывает ошибку. Поэтому в примерах я эти параметры не использую.

Примеры выполнения процедур по времени

Пример 1
Однократный запуск внешней процедуры через заданный промежуток времени:

Процедура Procedure1 будет выполнена через 10 секунд после запуска процедуры Primer1.

Пример 2
Однократный запуск внешней процедуры в заданное время:

Процедура Procedure2 будет выполнена в 12 часов по системному времени компьютера, если ранее была запущена процедура Primer2.

Пример 3
Многократный запуск внешней процедуры:

Процедура Primer3 запускает «условно бесконечный» секундомер в ячейке A1 активного рабочего листа, ограниченный 100 секундами с помощью условия.

Пример 4
Сохранение рабочей книги Excel каждые 10 минут:

Процедуры Primer4() и Procedure4() будут работать в бесконечном цикле, сохраняя рабочую книгу Excel каждые 10 минут, до закрытия этой книги. Закрывать книгу следует не менее, чем через 10 минут после внесения последних изменений, для гарантированного их сохранения.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег <pre> и по окончании кода </pre>.