एमएस ऑफिस VBA मैक्रोज़ में टाइमर का उपयोग करना

हम में से उन लोगों के लिए, जिनके मन में गहराई है VB.NETयात्रा वापस करने के लिए VB6 भ्रामक यात्रा हो सकती है। VB6 में एक टाइमर का उपयोग करना ऐसा ही है। उसी समय, आपके कोड में समयबद्ध प्रक्रियाओं को जोड़ना VBA मैक्रोज़ के नए उपयोगकर्ताओं के लिए स्पष्ट नहीं है।

न्यूकर्स के लिए टाइमर

कोडिंग वर्ड वीबीए मैक्रो स्वचालित रूप से एक परीक्षण का समय है जो वर्ड में लिखा गया था एक टाइमर का उपयोग करने का एक विशिष्ट कारण है। एक और सामान्य कारण यह देखना है कि आपके कोड के विभिन्न हिस्सों द्वारा कितना समय लिया जा रहा है ताकि आप धीमे वर्गों के अनुकूलन पर काम कर सकें। कभी-कभी, आप यह देखना चाह सकते हैं कि क्या अनुप्रयोग में कुछ भी हो रहा है जब लगता है कि कंप्यूटर सिर्फ बेकार बैठे हैं, जो एक सुरक्षा समस्या हो सकती है। टाइमर ऐसा कर सकते हैं।

एक टाइमर शुरू करें

आप एक ओनटाइम स्टेटमेंट को कोड करके एक टाइमर शुरू करते हैं। यह कथन Word और Excel में लागू किया गया है, लेकिन इसमें अलग-अलग वाक्यविन्यास हैं, जिसके आधार पर आप उपयोग कर रहे हैं। वर्ड के लिए वाक्य रचना है:

अभिव्यक्ति। ऑनटाइम (जब, नाम, सहिष्णुता)

एक्सेल के लिए सिंटैक्स इस तरह दिखता है:

instagram viewer

अभिव्यक्ति। ऑनटाइम (अर्लीटाइम, प्रोसीजर, लेटेस्ट टाइम, शेड्यूल)

दोनों का पहला और दूसरा पैरामीटर आम है। दूसरा पैरामीटर एक और मैक्रो का नाम है जो पहले पैरामीटर में समय तक पहुंचने पर चलता है। वास्तव में, इस कथन को कोड करना VB6 या VB.NET शब्दों में एक घटना सबरूटीन बनाने जैसा है। घटना पहले पैरामीटर में समय पर पहुंच रही है। घटना सबरूटीन दूसरा पैरामीटर है।

यह VB6 या VB.NET में कोड किए गए तरीके से अलग है। एक बात के लिए, दूसरे पैरामीटर में नामित मैक्रो किसी भी कोड में हो सकता है जो सुलभ है। एक वर्ड डॉक्यूमेंट में, Microsoft इसे नॉर्मल डॉक्यूमेंट टेम्पलेट में डालने की सलाह देता है। यदि आप इसे किसी अन्य मॉड्यूल में रखते हैं, तो Microsoft पूर्ण पथ का उपयोग करने की अनुशंसा करता है: प्रोजेक्ट। मापांक। मैक्रो।

अभिव्यक्ति आमतौर पर अनुप्रयोग वस्तु है। वर्ड और एक्सेल डॉक्यूमेंटेशन में कहा गया है कि डायलॉग या कोई अन्य प्रक्रिया एक निश्चित समय के भीतर चलने से रोकने पर तीसरा पैरामीटर इवेंट मैक्रो के निष्पादन को रद्द कर सकता है। Excel में, आप ऐसा होने के मामले में एक नया समय निर्धारित कर सकते हैं।

समय घटना मैक्रो कोड

वर्ड में यह कोड उस व्यवस्थापक के लिए है जो एक अधिसूचना प्रदर्शित करना चाहता है कि परीक्षण का समय समाप्त हो गया है और परीक्षण के परिणाम को प्रिंट कर रहा है।

सार्वजनिक उप TestOnTime ()
डिबग। प्रिंट करें "अलार्म 10 सेकंड में बंद हो जाएगा!"
डिबग। प्रिंट करें ("ऑनटाइम से पहले:" और अब)
अलर्टटाइम = अब + टाइमवैल्यू ("00:00:10")
आवेदन। ऑनटाइम अलर्टटाइम, "EventMacro"
डिबग। प्रिंट करें ("ऑनटाइम के बाद:" और अब)
अंत उप
सब EventMacro ()
डिबग। प्रिंट करें ("निष्पादन घटना मैक्रो:" और अब)
अंत उप

यह तत्काल विंडो में निम्नलिखित सामग्री के परिणामस्वरूप होता है:

अलार्म 10 सेकंड में बंद हो जाएगा!
ऑनटाइम से पहले: 12/25/2000 7:41:23 PM
ऑनटाइम के बाद: 12/25/2000 7:41:23 PM
निष्पादन घटना मैक्रो: 2/27/2010 7:41:33 अपराह्न

अन्य कार्यालय ऐप्स के लिए विकल्प

अन्य कार्यालय अनुप्रयोग ऑनटाइम लागू नहीं करते हैं। उन लोगों के लिए, आपके पास कई विकल्प हैं। सबसे पहले, आप टाइमर फ़ंक्शन का उपयोग कर सकते हैं, जो आपके पीसी पर आधी रात के बाद से सेकंड की संख्या को वापस करता है, और अपना खुद का गणित करता है, या आप विंडोज एपीआई कॉल का उपयोग कर सकते हैं। विंडोज एपीआई कॉल का उपयोग करने से टाइमर की तुलना में अधिक सटीक होने का फायदा होता है। Microsoft द्वारा चालित एक नियमित सुझाव दिया गया है:

निजी घोषणा समारोह getFrequency Lib "kernel32" _
उपनाम "QueryPerformanceFrequency" (लंबी अवधि के रूप में साइबरफ्रीक्वेंसी)
निजी घोषणा समारोह getTickCount Lib "k गिर्ल 32" _
उपनाम "QueryPerformanceCounter" (लंबे समय तक मुद्रा के रूप में साइबरटेकाउंट)
उप TestTimeAPICalls ()
डबल के रूप में मंद समय
dTime = माइक्रोटीमर
सिंगल के रूप में डिम स्टार्टटाइम
स्टार्टटाइम = टाइमर
I = 1 से 10000000 तक
दिम जे अस डबल
j = Sqr (i)
आगे
डिबग। प्रिंट ("माइक्रो टाइम टाइम लिया गया था:" और माइक्रोटीमर - डीएमईटी)
अंत उप
MicroTimer () डबल के रूप में
'
'कुछ ही सेकंड में लौटता है।
'
मुद्रा के रूप में मंद साइबरिक्स 1
मुद्रा के रूप में स्थैतिक साइबर सुरक्षा
'
माइक्रो टायमर = ०
'आवृत्ति प्राप्त करें।
यदि cyFrequency = 0 तो getFrequency cyFrequency
'टिक जाओ।
getTickCount cyTicks1
'सेकेंड
यदि साइबर सुरक्षा तो माइक्रोटीमर = साइबरटैक्स 1 / साइबरफ्रीक्वेंसी
अंत समारोह