Bazen bir makroyu belli bir saatte ya da belli bir süre geçtikten sonra (ki aslında bu da bir zamana tekabül ediyor) çalıştırmak isteyebiliriz. Bunun için yapabileceklerimize bakalım.
Option Explicit
Sub CalistirilacakMakro()
MsgBox "Merhaba. Bu bir hatırlatıcıdır."
End Sub
Sub BelliBirSureGectiktenSonraMakroyuCalistir()
Application.OnTime Now + TimeValue("00:00:03"), "CalistirilacakMakro"
End Sub
Option Explicit
'--------------------------------------------------
'Belli bir süre geçtikten sonra çalışmasını istediğimiz
'kod parçalarını makro (procedure) olarak ayarladık.
'--------------------------------------------------
Sub CalistirilacakMakro()
MsgBox "Merhaba. Bu bir hatırlatıcıdır."
End Sub
Sub BelliBirSureGectiktenSonraMakroyuCalistir()
'--------------------------------------------------
'Burada olayımız şu:
'Makro "belli bir süre geçtikten sonra" çalışsın.
'Yani, 5 saniye sonra 2 dakika sonra, 3 saat sonra,
'7 saat, 22 dakika, 35 saniye sonra vs.
'Şimdi bunun nasıl belirlendiğine bakalım.
'
'Makronun örneğin 3 saniye sonra çalışabilmesini
'sağlamak için şimdiki zamanı dinamik olarak
'belirleyebilmek gerekiyor. Bunu Now ile yapıyoruz.
'
'Şimdiki zamanı bulduktan sonra da üzerine ekleme
'yapmamız gerekiyor. Bunu da TimeValue ile hallettik.
'
'Now + TimeValue("00:00:03") ile ilk parametreyi
'belirledik, yani makronun 3 saniye sonra çalışmasını
'istediğimizi belirttik.
'
'İkinci parametreye de 3 saniye sonra çalışması
'için ayarladığımız makronun ismini string
'ifade gibi yazıyoruz.
'--------------------------------------------------
Application.OnTime Now + TimeValue("00:00:03"), "CalistirilacakMakro"
End Sub