Vba'da bekleme ve uyku komutları nasıl kullanılır?

VBA bekleme komutu

VBA’da WAIT komutu (yöntemi), Excel’de yaptığınız tüm etkinlikleri belirli bir süre veya belirli bir zamana kadar beklemenize yardımcı olur. Basitçe söylemek gerekirse, VBA’nın birkaç saniye, dakika, hatta saatlerce veya sabit bir süreye kadar beklemesini sağlayabilirsiniz. Belirtmenizi gerektiren bir argümanı var.

VBA Wait’i kullanma adımları

  1. Öncelikle “Uygulama” anahtar kelimesini kullanın ve özelliklerin ve yöntemlerin listesini almak için bir nokta (.) yazın.
  2. Bundan sonra “Bekle” yöntemini seçin veya dokunun.
  3. Şimdi VBA’ya ne kadar beklemek istediğinizi söylemek için “Zaman” bağımsız değişkenini belirtin.
  4. Sonunda, Excel’deki tüm etkinlikleri sıraya koymak için kodu çalıştırın.
vba-bekleme komutu

Bu kodda, VBA’ya kodu çalıştırdığınız andan itibaren on saniye beklemesini bildirmek için NOW ve TIMEVALUE ( VBA İşlevleri ) ifadelerini kullandınız. Böylece, on saniye dolduğunda, IF ifadesi durumu test edecek ve size “Bekle” mesajını içeren bir mesaj kutusu göstererek çalışacaktır.

 Sub vba_wait_example() If Application.Wait(Now + TimeValue("00:00:10")) = True Then MsgBox "Wait Over" End If End Sub

Excel’in tüm etkinlikleri belirli bir zamana kadar beklemesine izin vermek için Bekleme yöntemini de kullanabilirsiniz. Aşağıdaki kod saat 13:00’e kadar bekliyor. Yani sistemimde şu anda saat 12:52 olduğundan bu satır kodu sonraki 8 dakikayı bekletecek.

 Application.Wait "13:00:00"

Not: Bekleme yöntemiyle yalnızca en az bir saniye bekleyebilirsiniz.

VBA Uykusu

Uyku, makro çalıştırırken duraklatmanıza veya gecikme eklemenize yardımcı olabilecek bir Windows işlevidir ( Windows DLL dosyaları altında; bu işlevi bir kod ifadesi kullanarak içe aktarmanız gerekir ). Bu fonksiyonda zamanı milisaniye cinsinden belirtebilirsiniz, ancak her şeyi duraklattıktan sonra uyku fonksiyonunu durduramazsınız.

VBA’da uyku işlevini kullanın

  1. Öncelikle “ kernel32 kütüphanesinden ” uyku fonksiyonunu içe aktarmak için code ifadesini kullanmanız gerekmektedir.
  2. Daha sonra eğer 64-bit Excel kullanıyorsanız “PtrSafe” ifadesini eklediğinizden emin olmanız gerekiyor.
  3. Daha sonra uyku işlevini kodla çağırmanız gerekir.
  4. Sonunda kodu geciktirmek istediğiniz süreyi (milisaniye) belirtin.
 If VBA7 Then ' For 64-Bit versions of Excel Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Else 'For 32-Bit versions of Excel Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) End If Sub vba_sleep() Sleep (10000) 'add code here MsgBox "Finished" End Sub

Yukarıdaki kodda 10.000 milisaniyeniz var, bu da 10 saniyeye eşittir. Bu kodu çalıştırdığınızda, kodu 10 saniye geciktirecek ve ardından bir mesaj kutusu gösterecektir.

Not: Uyku fonksiyonunu kullandığınızda Excel’deki her şeyi ayarladığınız süre boyunca durdurur, hatta bozamazsınız. 32 bit ve 64 bit sürümler arasındaki uyumluluk konusunda Microsoft’un bu bağlantısına göz atmayı unutmayın.

Yorum ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir