گاهی اوقات لازم است در زمان مشخصی کار خاصی در اکسل انجام شود
به عنوان مثال فایل های اکسلی که در شبکه به اشتراک گذاشته می شوند فقط برای نفر اول قابل استفاده بوده و برای نفرات بعدی فقط خواندنی است برای این مثال می توان با گذاشتن یک تایمر بعد از گذشتن زمان مشخصی برنامه را بست تا دیگر کاربران از ان استفاده نمایند
برای چنین مواردی از تابع ontime به شرح زیر استفاده می شود
OnTime( EarliestTime , Procedure , LatestTime , Schedule )
بخش اول زمان مد نظر
بخش دوم اتفاقی که باید در زمان مدنظر رخ دهد
بخش سوم ایا امکان اجرای برنامه در زمان تعیین شده وجود دارد و اکسل در حال اماده به کار می باشد مثلا اگر اکسل در حال cut یا copy و غیره باشد بعد از یک وقفه 30 ثانیه ای درخواست مجددا اجرا می شود
بخش چهارم متوقف کردن ontime یا از سر گیری آن پیش فرض true
مثال
خط کد زیر برنامه مد نظر را بعد از 15 دقیقه اجرا می کند
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
اجرای برنامه در ساعت 17
Application.OnTime TimeValue("17:00:00"), "my_Procedure"
لغو کردن تایمر قبلی
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="my_Procedure", Schedule:=False
نقل شده از
https://msdn.microsoft.com/en-us/vba/excel-vba/articles/application-ontime-method-excel