हमने अभी जो सीखा है उसका अभ्यास करने के लिए, हम वर्तमान में सक्रिय सेल से शुरू करके 10x10 चेकरबोर्ड (लाल और काला) को पेंट करने के लिए मैक्रो बनाने की प्रक्रिया से गुजरेंगे।
आइए उस लूप के आउटपुट को देखें जिसे हम प्राप्त करना चाहते हैं:
अगला, अभ्यास का पहला चरण एक खाली प्रक्रिया बनाना होगा:
Sub loops_exercise() Const NB_CELLS As Integer = 10 'हम जितने सेल पेंट करना चाहते हैं '... End Sub
आइए कॉलम A को काला करने के लिए FOR लूप जोड़कर शुरुआत करें (NB_CELLS स्थिरांक 10 है)।
हमें निम्नलिखित परिणाम मिलना चाहिए:
आइए कोड पर एक नज़र डालें:
Sub loops_exercise() Const NB_CELLS As Integer = 10 'हम जितने सेल पेंट करना चाहते हैं For r = 1 To NB_CELLS 'आर => पंक्ति संख्या Cells(r, 1).Interior.Color = RGB(0, 0, 0) 'काला Next End Sub
अगला चरण IF निर्देश का उपयोग करके प्रत्येक आगामी सेल को लाल रंग देता है (इस पर आधारित है कि पंक्ति संख्या सम है या विषम)। देखना निचला:
इस उपकार्य को हल करने का कोड इस प्रकार है:
Sub loops_exercise() Const NB_CELLS As Integer = 10 'हम जितने सेल पेंट करना चाहते हैं For r = 1 To NB_CELLS 'आर => पंक्ति संख्या If r Mod 2 = 0 Then 'Mod => विभाजन से शेषफल है Cells(r, 1).Interior.Color = RGB(200, 0, 0) 'लाल Else Cells(r, 1).Interior.Color = RGB(0, 0, 0) 'काला End If Next End Sub
शर्त IF r Mod 2 = 0 का अर्थ है: यदि r को 2 से विभाजित करने पर शेषफल 0 है...
केवल वह पंक्ति संख्या जो सम है, उसे 2 से विभाजित करने पर 0 शेष बचता है:
एक और लूप कैसे बनाएं जो लूप को निष्पादित करेगा, हम पहले ही 10 कॉलम के लिए लिख चुके हैं। देखना निचला:
इस उपकार्य को हल करने का कोड इस प्रकार है:
Sub loops_exercise() Const NB_CELLS As Integer = 10 'कोशिकाओं के साथ 10x10 बिसात For r = 1 To NB_CELLS 'आर => पंक्ति संख्या For c = 1 To NB_CELLS 'सी => कॉलम संख्या If r Mod 2 = 0 Then Cells(r, c).Interior.Color = RGB(200, 0, 0) 'लाल Else Cells(r, c).Interior.Color = RGB(0, 0, 0) 'काला End If Next Next End Sub
अब दूसरे चक्र को पहले में डाला गया है।
निम्नलिखित परिणाम प्राप्त करने के लिए...
बदलना:
If r Mod 2 = 0 Then
पर:
If (r + c) Mod 2 = 0 Then
जो कुछ करना बाकी है वह कोड को बदलना है ताकि चेकरबोर्ड चयनित सेल (ए 1 नहीं) से शुरू हो सके। नीचे देखें:
इसके लिए हम निम्नलिखित कोड लिखेंगे:
Sub loops_exercise() Const NB_CELLS As Integer = 10 'कोशिकाओं के साथ 10x10 बिसात Dim offset_row As Integer, offset_col As Integer '=> 2 वेरिएबल जोड़ें 'पहले सेल से शुरू होने वाली ऑफसेट (पंक्तियाँ) = वर्तमान सक्रिय सेल की पंक्ति संख्या - 1 offset_row = ActiveCell.Row - 1 'पहले सेल से शुरू होने वाला ऑफसेट (कॉलम) = वर्तमान सक्रिय सेल का कॉलम नंबर - 1 offset_col = ActiveCell.Column - 1 For r = 1 To NB_CELLS 'लाइन नंबर For c = 1 To NB_CELLS 'स्तम्भ संख्या If (r + c) Mod 2 = 0 Then 'सेल (पंक्ति संख्या + अतिरिक्त पंक्ति ऑफसेट, कॉलम संख्या + 'स्तंभों का अतिरिक्त विस्थापन) Cells(r + offset_row, c + offset_col).Interior.Color = RGB(200, 0, 0) 'लाल Else Cells(r + offset_row, c + offset_col).Interior.Color = RGB(0, 0, 0) 'काला End If Next Next End Sub