لأولئك منا الذين لديهم أذهاننا بعمق VB.NETرحلة العودة إلى VB6 يمكن أن تكون رحلة مربكة. استخدام جهاز ضبط الوقت في VB6 هو مثل هذا. في الوقت نفسه ، لا تكون إضافة العمليات الموقوتة إلى التعليمات البرمجية الخاصة بك واضحة للمستخدمين الجدد لـ VBA Macros.
توقيت للمبتدئين
الترميز يعد ماكرو Word VBA لتوقيت الاختبار الذي تمت كتابته في Word تلقائيًا سببًا نموذجيًا لاستخدام جهاز ضبط الوقت. سبب آخر شائع هو معرفة مقدار الوقت الذي تستغرقه أجزاء مختلفة من التعليمات البرمجية حتى تتمكن من العمل على تحسين الأقسام البطيئة. في بعض الأحيان ، قد ترغب في معرفة ما إذا كان هناك أي شيء يحدث في التطبيق عندما يبدو أن الكمبيوتر يجلس فقط في وضع الخمول ، مما قد يمثل مشكلة أمنية. يمكن للمؤقتات أن تفعل ذلك.
ابدأ تشغيل مؤقت
يمكنك بدء المؤقت عن طريق ترميز عبارة OnTime. يتم تنفيذ هذا البيان في Word و Excel ، ولكن له بناء جملة مختلف اعتمادًا على العبارة التي تستخدمها. بناء جملة Word هو:
التعبير. OnTime (متى ، الاسم ، التسامح)
تبدو بنية Excel كما يلي:
التعبير. OnTime (EarliestTime ، الإجراء ، LatestTime ، الجدول الزمني)
كلاهما يشتركان في المعلمة الأولى والثانية. المعلمة الثانية هي اسم ماكرو آخر يتم تشغيله عند الوصول إلى الوقت في المعلمة الأولى. في الواقع ، تشفير هذا البيان يشبه إنشاء روتين فرعي للحدث في مصطلحات VB6 أو VB.NET. يصل الحدث إلى الوقت في المعلمة الأولى. روتين الحدث هو المعلمة الثانية.
هذا يختلف عن طريقة ترميزه في VB6 أو VB.NET. لسبب واحد ، يمكن أن يكون الماكرو المسمى في المعلمة الثانية في أي رمز يمكن الوصول إليه. في مستند Word ، توصي Microsoft بوضعه في قالب المستند العادي. إذا وضعته في وحدة نمطية أخرى ، توصي Microsoft باستخدام المسار الكامل: Project. وحدة. دقيق.
عادة ما يكون التعبير هو كائن التطبيق. تنص وثائق Word و Excel على أنه يمكن للمعلمة الثالثة إلغاء تنفيذ ماكرو الحدث في حال منعه مربع حوار أو عملية أخرى من تشغيله خلال فترة زمنية معينة. في Excel ، يمكنك جدولة وقت جديد في حالة حدوث ذلك.
رمز ماكرو حدث الوقت
هذا الرمز في Word مخصص للمسؤول الذي يريد عرض إعلام بانتهاء وقت الاختبار وطباعة نتيجة الاختبار.
TestOnTime () الفرعية العامة
تصحيح. طباعة "سوف ينطلق المنبه خلال 10 ثوانٍ!"
تصحيح. طباعة ("قبل OnTime:" و Now)
alertTime = الآن + TimeValue ("00:00:10")
تطبيق. تنبيه وقت التشغيل ، "EventMacro"
تصحيح. طباعة ("بعد OnTime:" & Now)
نهاية فرعية
حدث فرعي Macro ()
تصحيح. طباعة ("تنفيذ ماكرو الحدث:" والآن)
نهاية فرعية
ينتج عن هذا المحتوى التالي في النافذة الفورية:
سينطلق المنبه خلال 10 ثوانٍ!
قبل OnTime: 12/25/2000 7:41:23 م
بعد OnTime: 12/25/2000 7:41:23 م
تنفيذ الحدث ماكرو: 2/27/2010 7:41:33 م
خيار لتطبيقات Office الأخرى
لا تقوم تطبيقات Office الأخرى بتطبيق OnTime. لأولئك ، لديك العديد من الخيارات. أولاً ، يمكنك استخدام وظيفة Timer ، التي تُرجع ببساطة عدد الثواني منذ منتصف الليل على جهاز الكمبيوتر الخاص بك ، وتقوم بالرياضيات الخاصة بك ، أو يمكنك استخدام مكالمات Windows API. يتميز استخدام مكالمات واجهة برمجة تطبيقات Windows بأنه أكثر دقة من المؤقت. إليك روتين اقترحته Microsoft يقوم بالخدعة:
دالة التصريح الخاصة getFrequency Lib "kernel32" _
الاسم المستعار "QueryPerformanceFrequency" (cyFrequency As Currency) طالما
الدالة Declare الخاصة getTickCount Lib "kernel32" _
الاسم المستعار "QueryPerformanceCounter" (cyTickCount As Currency) طالما
TestTimeAPICalls ()
خافت dTime كمزدوج
dTime = MicroTimer
Dim StartTime كـ Single
StartTime = المؤقت
من أجل i = 1 إلى 10000000
Dim j As Double
ي = سبر (ط)
التالى
تصحيح. طباعة ("وقت MicroTimer المستغرق:" & MicroTimer - dTime)
نهاية فرعية
وظيفة MicroTimer () كمضاعفة
'
إرجاع الثواني.
'
cyTicks1 خافت كعملة
التردد الإلكتروني الثابت كعملة
'
MicroTimer = 0
"احصل على التردد.
إذا كانت cyFrequency = 0 ثم getFrequency cyFrequency
"احصل على القراد.
getTickCount cyTicks1
ثواني
إذا كان cyFrequency ثم MicroTimer = cyTicks1 / cyFrequency
وظيفة النهاية