TOP

VBA-पाठ 2. डिबगर (Debugger)

प्रोग्राम कोड को डीबग करने के लिए VBA वातावरण में एक उपकरण। VBA पर लिखने वाले किसी भी व्यक्ति के लिए डिबगर के साथ काम करने में सक्षम होना महत्वपूर्ण है। यह जांचने के लिए कि आपका कोड कैसे काम करता है और उसमें त्रुटियाँ ढूंढने और उन्हें ठीक करने के लिए इसकी आवश्यकता है।


Visual Basic Editor (Alt+F11) खोलें। इसमें एक मॉड्यूल बनाएं और निम्नलिखित कोड लिखें:

 Sub LearningDebug()
    Dim A As Long, B As Long, C As Long, D As Long

    D = 0
    A = 10
    Debug.Print "A = " + Trim(Str(A))
    B = 15
    Debug.Print "B = " + Trim(Str(B))
    C = A + B
    Debug.Print "C = " + Trim(Str(C))
    C = Round(C / 5)
    Debug.Print "Divide С by 5: C = " + Trim(Str(C))  'C को 5 से विभाजित किया गया है: C =
    C = Round(C / D) 'यहां एक त्रुटि होगी, क्योंकि शून्य से विभाजित करना असंभव है (और डी = 0)
End Sub

Ctrl+G दबाएँ और Immediate विंडो सबसे नीचे दिखाई देगी। इस विंडो में, मैक्रो के संचालन के दौरान, आप वेरिएबल्स के मान बदल सकते हैं, VBA पर अलग-अलग कोड निष्पादित कर सकते हैं, जो पहले मॉड्यूल में नहीं लिखे गए हैं।

यदि आप कर्सर को मॉड्यूल के कोड के अंदर रखते हैं और F5 दबाते हैं, तो यह पूरी तरह से निष्पादित हो जाएगा। यदि आप F8 दबाते हैं, तो कोड की केवल एक पंक्ति निष्पादित होगी। F8 का अगला प्रेस कोड की अगली पंक्ति निष्पादित करेगा, इत्यादि। आप संपूर्ण कोड को पार कर सकते हैं. आप F9 बटन का उपयोग करके ब्रेकप्वाइंट बना सकते हैं। यदि आप F5 के साथ कोड चलाते हैं, तो कोड निर्दिष्ट लाइन पर चलेगा और फिर रुक जाएगा। फिर इसे पहले वर्णित F5 या F8 बटन का उपयोग करके जारी रखा जा सकता है।

यदि आप कोड को करीब से देखेंगे, तो आप देखेंगे कि वेरिएबल ए, बी, सी, डी को निर्दिष्ट संख्याएं दी गई हैं। Debug.Print "टेक्स्ट" लाइनें हमारे द्वारा निर्दिष्ट टेक्स्ट को पहले खोले गए Immediate विंडो पर प्रिंट करती हैं, यह देखने के लिए कि वेरिएबल के साथ क्या हो रहा है। Str(A) किसी संख्या को टेक्स्ट मान में परिवर्तित करता है। और Trim() इसमें से दाएं और बाएं रिक्त स्थान को हटा देता है। ऑपरेटर Round(С) अंकगणित के नियमों के अनुसार मान को एक पूर्णांक तक पूर्णांकित करता है (इसलिए, हम गणना के परिणाम को एक पूर्णांक चर Long पर निर्दिष्ट करते हैं, जिसका अर्थ है यह एक पूर्णांक होना चाहिए)। कोड के अंत में, हमने डिबगर का उपयोग करने का अभ्यास करने के लिए विशेष रूप से एक झूठी स्थिति बनाई।

कोड के अंदर खड़े होकर F8 को चार बार दबाएं। आगे जिस लाइन को निष्पादित किया जाएगा उसे पीले रंग में चिह्नित किया जाएगा। विभिन्न वेरिएबल्स पर होवर करें. साथ ही एक पॉप-अप विंडो दिखाई देगी जिसमें आपको उनकी वैल्यू दिखाई देगी. वे वेरिएबल जिन्हें अभी तक मान निर्दिष्ट नहीं किया गया है वे शून्य के बराबर हैं। फिर से F8 दबाएँ. Immediate विंडो में एक लाइन दिखाई देगी: A = 10 अब हम Immediate विंडो में वेरिएबल A का मान तुरंत बदल सकते हैं (उदाहरण के लिए, इसे 8 में बदलें)। ऐसा करने के लिए, Immediate विंडो की एक नई पंक्ति में, लिखें: A = 8 और Enter दबाएँ। अब वेरिएबल A पर होवर करें और देखें कि इसका मान 8 है। होवर किए बिना मान देखने के लिए, आप इसे Immediate विंडो में प्रदर्शित कर सकते हैं। यह इस प्रकार किया जाता है, विंडो की खाली लाइन में Immediate: ?A दर्ज करें और Enter दबाएँ। संकेत? विंडो में Immediate का मतलब कोड में Debug.Print जैसा ही है। इस तरह लिखना बहुत आसान और छोटा है। आपको तुरंत नंबर दिखाई देगा - आपके अनुरोध का परिणाम।

कर्सर को कोड की अंतिम पंक्ति (C = Round (C/D)) पर रखें और F9 दबाएँ। एक ब्रेकप्वाइंट दिखाई देगा. आप इसे उसी बटन से हटा सकते हैं, लेकिन हम इसे अभी नहीं हटाएंगे। F5 दबाएँ, प्रोग्राम सभी पंक्तियों को निष्पादित करेगा और अंतिम पंक्ति पर रुक जाएगा। Immediate विंडो में, वेरिएबल्स को मान निर्दिष्ट करने के बारे में संदेश दिखाई देंगे। हम कोड की अंतिम पंक्ति तक पहुंच गए हैं। इसमें एक त्रुटि आनी चाहिए क्योंकि इसमें शून्य से विभाजन है। F8 दबाएँ और स्वयं देखें। दिखाई देने वाली विंडो में, Debug पर क्लिक करें। यदि आप End दबाते हैं, तो प्रोग्राम का निष्पादन रुक जाएगा, और हम इसे समाप्त करना चाहते हैं।

आप वेरिएबल डी का मान बदलकर स्थिति को ठीक कर सकते हैं। अब यह शून्य के बराबर है। Immediate विंडो में, एक खाली लाइन में टेक्स्ट: D = 2 दर्ज करें और Enter दबाएँ। अब, कोड की अंतिम पंक्ति के साथ, हम शून्य से नहीं, बल्कि 2 से विभाजित करते हैं, इस प्रकार त्रुटि से बचते हैं। F5 दबाएँ और प्रोग्राम बिना किसी त्रुटि के अपना काम पूरा कर लेगा।

कोड बदलने का प्रयास करें और डिबगर का उपयोग करने का अभ्यास करें। मेरा विश्वास करें, यह आपके जीवन को बहुत आसान बना देगा।