लूप्स निर्देशों को कई बार दोहराते हैं, और बहुत समय बचा सकते हैं।
निम्नलिखित प्रकार के लूप Excel VBA में मौजूद हैं:
निम्नलिखित कोड कॉलम 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:
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 से बदल दें।
लूप लिखने का एक और तरीका है जो 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
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
निम्नलिखित निर्देश का उपयोग करके 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 'निकास समारोह