Метод 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"
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.