TOP

VBA-पाठ 8.1. लूप्स (Loops)

लूप्स निर्देशों को कई बार दोहराते हैं, और बहुत समय बचा सकते हैं।

निम्नलिखित प्रकार के लूप Excel VBA में मौजूद हैं:

  • While ... Wend
  • Do ... Loop
  • For ... To ... Next

  • निम्नलिखित कोड कॉलम A (1 से 12 तक) के प्रत्येक सेल में संख्याओं का एक क्रम सम्मिलित करता है:

    Sub while_loop()
    
        Cells(1, 1) = 1
        Cells(2, 1) = 2
        Cells(3, 1) = 3
        Cells(4, 1) = 4
        Cells(5, 1) = 5
        Cells(6, 1) = 6
        Cells(7, 1) = 7
        Cells(8, 1) = 8
        Cells(9, 1) = 9
        Cells(10, 1) = 10
        Cells(11, 1) = 11
        Cells(12, 1) = 12
    
    End Sub
    

    यह कोड बहुत दोहराव वाला है...

    कल्पना करें कि यदि हमें केवल 12 के बजाय सैकड़ों सेल में लगातार संख्याएँ डालनी हों... अब आप समझ गए हैं कि लूप इतने उपयोगी क्यों हैं।

    WHILE ... WEND

    आइए एक खाली चक्र का उदाहरण दें While:

    Sub while_loop()
    
        While [स्थिति]
            'निर्देश
        Wend
    
    End Sub
    

    जब तक शर्त सत्य है, लूप में कथन निष्पादित होते रहेंगे (लेकिन सावधान रहें कि अनंत लूप न बनाएं)।

    नीचे वह लूपिंग मैक्रो है जिस पर पहले चर्चा की गई थी, जिसे While लूप में बदल दिया गया है:

    Sub while_loop()
    
        Dim num As Integer
        num = 1 'प्रारंभिक संख्या (इस मामले में, यह पंक्ति संख्या और मान सेट किया जा रहा है)
    
        While num <= 12 'जब तक संख्या चर 12 से कम या उसके बराबर है, निर्देश निष्पादित किए जाएंगे
           Cells(num, 1) = num 'नंबरिंग
           num = num + 1 'हर बार लूप गुजरने पर संख्या 1 बढ़ जाती है
        Wend
           
    End Sub
    

    मैक्रो में इस लूप का उपयोग करते हुए, यदि हमें 12 के बजाय 400 टेपों की आवश्यकता है तो हमें बस इतना करना होगा कि 12 को 400 से बदल दें।

    DO ... LOOP

    लूप लिखने का एक और तरीका है जो While Wend के समान काम करता है (जब तक While कमांड में निहित एक निश्चित शर्त सत्य है तब तक चलता है):

    Sub do_while_loop()
    
        Do While [स्थिति]
            'निर्देश
        Loop
    
    End Sub
    

    निम्नलिखित संस्करण से पता चलता है कि शर्त को Do Loop लूप के अंत में लिखा जा सकता है, जिसका अर्थ है कि निर्देश कम से कम एक बार निष्पादित किए जाएंगे:

    Sub do_while_loop()
    
        Do
            'निर्देश
        Loop While [स्थिति]
    
    End Sub
    

    शर्त पूरी होने पर लूपिंग के बजाय, यदि हम While को Until से बदल दें तो हम शर्त के आधार पर भी लूप से बाहर निकल सकते हैं:

    Sub do_while_loop()
    
        Do Until [स्थिति]
            'निर्देश
        Loop
    
    End Sub
    

    FOR ... TO ... NEXT

    Sub for_loop()
    
        For i = 1 To 5
            'निर्देश
        Next
    
    End Sub
    

    For लूप यहां 5 बार दोहराया जाएगा।

    हर बार जब यह चक्र दोहराया जाता है, तो वेरिएबल i स्वचालित रूप से 1 बढ़ जाता है:

    Sub for_loop()
    
        For i = 1 To 5
            MsgBox i
        Next
    
    End Sub
    

    प्रारंभिक लूप निकास (Exit)

    निम्नलिखित निर्देश का उपयोग करके For लूप से जल्दी बाहर निकलना संभव है:

    Exit For 'For लूप से बाहर निकलें
    

    आइए एक उदाहरण पर विचार करें जो यह स्पष्ट रूप से दिखाएगा:

    Sub for_loop()
        Dim max_loops As Integer
        max_loops = Range("A1") 'सेल A1 में, हमने दोहराव की संख्या के लिए सीमा निर्दिष्ट की है
    
        For i = 1 To 7 'चक्रों की अपेक्षित संख्या: 7
           If i > max_loops Then 'यदि सेल A1 खाली है या इसमें 7 से कम संख्या है, तो दोहराव की संख्या कम करें
               Exit For 'यदि पिछली स्थिति TRUE है, तो लूप से बाहर निकलें For...लूप
           End If
       
           MsgBox i
        Next
    
    End Sub
    

    अन्य Exit ऑपरेटर:

    Exit Do 'लूप निकास Do Loop
    
    Exit Sub 'प्रक्रिया से बाहर निकलें
    
    Exit Function 'निकास समारोह