كيفية استخدام أوامر الانتظار والسكون في vba؟
أمر الانتظار لـ VBA
في VBA، يساعدك أمر (طريقة) الانتظار على انتظار جميع الأنشطة التي تقوم بها في Excel لفترة معينة أو حتى وقت محدد. ببساطة، يمكنك جعل VBA ينتظر لبضع ثوان، أو دقائق، أو حتى ساعات، أو حتى وقت محدد. لديها حجة تتطلب منك تحديدها.
خطوات استخدام VBA انتظر
- أولاً، استخدم الكلمة الأساسية “Application” واكتب النقطة (.) للحصول على قائمة الخصائص والأساليب.
- بعد ذلك، حدد أو اضغط على طريقة “الانتظار”.
- الآن حدد الوسيطة “الوقت” لإخبار VBA بالمدة التي تريد الانتظار فيها.
- في النهاية، قم بتشغيل التعليمات البرمجية لقائمة الانتظار لجميع الأنشطة في Excel.
في هذا الرمز، استخدمت NOW و TIMEVALUE ( وظائف VBA ) لإخبار VBA بالانتظار لمدة عشر ثوانٍ من وقت تشغيل التعليمات البرمجية. لذا، بمجرد انتهاء العشر ثوانٍ، ستقوم عبارة IF باختبار الحالة وتنفيذها لتظهر لك مربع رسالة يحتوي على الرسالة “انتظر أكثر”.
Sub vba_wait_example() If Application.Wait(Now + TimeValue("00:00:10")) = True Then MsgBox "Wait Over" End If End Sub
يمكنك أيضًا استخدام طريقة الانتظار للسماح لـ Excel بالانتظار لجميع الأنشطة حتى وقت محدد. ينتظر الكود التالي حتى الساعة 1:00 مساءً، لذا بما أن الساعة 12:52 في نظامي الآن، فإن رمز السطر هذا سيجعله ينتظر لمدة 8 دقائق القادمة.
Application.Wait "13:00:00"
ملاحظة: باستخدام طريقة الانتظار، يمكنك الانتظار لثانية واحدة فقط على الأقل.
نوم VBA
إن وضع السكون عبارة عن إحدى وظائف Windows ( ضمن ملفات Windows DLL؛ تحتاج إلى استيراد هذه الوظيفة باستخدام عبارة التعليمات البرمجية ) التي يمكن أن تساعدك في الإيقاف المؤقت أو إضافة تأخير عند تشغيل ماكرو . في هذه الوظيفة، يمكنك تحديد الوقت بالمللي ثانية، لكن لا يمكنك إيقاف وظيفة السكون بمجرد إيقاف كل شيء مؤقتًا.
استخدم وظيفة السكون في VBA
- أولاً، تحتاج إلى استخدام بيان الكود لاستيراد وظيفة السكون من ” مكتبة kernel32 “.
- ثم تحتاج إلى التأكد من إضافة عبارة “PtrSafe” إذا كنت تستخدم Excel 64 بت.
- فأنت بحاجة إلى استدعاء وظيفة النوم في التعليمات البرمجية.
- في النهاية، حدد الوقت (بالمللي ثانية) الذي تريد تأخير الكود فيه.
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
في الكود أعلاه لديك 10000 مللي ثانية، أي ما يعادل 10 ثوانٍ. عند تشغيل هذا الرمز، فإنه سيؤخر الرمز لمدة 10 ثوانٍ ثم يظهر مربع رسالة.
ملاحظة: عند استخدام وظيفة السكون، فإنها توقف كل شيء في Excel للوقت الذي تحدده، ولا يمكنك حتى كسرها. تأكد من مراجعة هذا الرابط من Microsoft حول التوافق بين الإصدارين 32 بت و64 بت .