Поделиться через


Метод Application.OnTime (Word)

Запускает фоновый таймер, который запускает макрос в указанное время.

Синтаксис

выражение. OnTime( _When_ , _Name_ , _Tolerance_ )

выражение (обязательно). Переменная, представляющая объект Application .

Параметры

Имя Обязательный или необязательный Тип данных Описание
Когда Обязательный Variant Время выполнения макроса.
Name Обязательный String Имя выполняемого макроса.
Допуск Необязательный Variant Максимальное время (в секундах), которое может пройти до отмены макроса, который не был запущен в момент, указанный параметром When. Макросы не всегда могут выполняться в указанное время. Например, если выполняется операция сортировки или отображается диалоговое окно, макрос будет отложен до тех пор, пока Word не завершит задачу. Если этот аргумент равен 0 (ноль) или опущен, макрос выполняется независимо от того, сколько времени прошло с момента, указанного параметром When.

Замечания

Параметр When может быть строкой, указывающей время (например, или "16:30"), или серийным номером, "4:30 pm" возвращаемым функцией, такой как TimeValue или TimeSerial (например, TimeValue("2:30 pm") или TimeSerial(14, 30, 00)). Можно также включить дату (например, "6/30 4:15 pm" или TimeValue("6/30 4:15 pm")).

В параметре Name используйте полный путь к макросу, чтобы убедиться, что выполняется правильный макрос (например, "Project.Module1.Macro1"). Для выполнения макроса документ или шаблон должны быть доступны как при выполнении инструкции OnTime , так и в течение времени, указанного параметром When arrives. По этой причине лучше сохранить макрос в Normal.dot или другом глобальном шаблоне, который загружается автоматически.

Используйте сумму возвращаемых значений функции Now и функции TimeValue или TimeSerial , чтобы задать таймер для выполнения макроса через указанное время после выполнения инструкции. Например, используйте для Now+TimeValue("00:05:30") выполнения макроса через 5 минут и 30 секунд после выполнения инструкции.

Word может поддерживать только один фоновый таймер, заданный OnTime. При запуске другого таймера перед запуском существующего таймера существующий таймер будет отменен.

Пример

В этом примере выполняется макрос с именем Macro1 в текущем модуле в 15:55.

Application.OnTime When:="15:55:00", Name:="Macro1"

В этом примере макрос с именем Macro1 запускается через 15 секунд с момента выполнения примера. Имя макроса включает в себя имя проекта и модуля.

Application.OnTime When:=Now + TimeValue("00:00:15"), _ 
 Name:="Project1.Module1.Macro1"

В этом примере выполняется макрос с именем Start в 13:30. Имя макроса включает в себя имя проекта и модуля.

Application.OnTime When:=TimeValue("1:30 pm"), _ 
 Name:="VBAProj.Module1.Start"

См. также

Объект Application

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.