Theory
Piano roll के पीछे: असल code
पिछले lesson में Aryan ने एक macro record किया। अब वह इसे खोलता है, और पाता है यह जादू नहीं है, यह code है, VBA (Visual Basic for Applications) नामक भाषा में एक असली program।
यह एक BCA student के लिए एक आनंददायक पल है: programming जो आपने BCA104 में सीखी (variables, loops, if-statements) यहाँ भी मौजूद है, Excel की ओर लक्षित। एक recorded macro बस VBA है जो Excel ने आपके लिए लिखा।
थोड़ी सी भी VBA समझना कठोर recordings को लचीले, editable automation में बदल देता है। और आप पहले से एक programmer की तरह सोचते हैं। चलिए editor खोलें और कुछ code पढ़ें।
Theory
Excel को एक robot की तरह command करना
VBA आपको Excel को typed commands देने देता है, एक robot को निर्देश देने की तरह: 'cell A1 पर जाओ' (Range("A1")), 'वहाँ 100 रखो' (.Value = 100), 'इसे bold बनाओ' (.Font.Bold = True)। Excel objects से बना है (workbooks, sheets, cells), हर एक की properties के साथ जो आप पढ़ते या सेट करते हैं। VBA उन objects पर हुकूमत करने की भाषा है। एक macro बस ऐसे commands की एक सूची है जो ऊपर से नीचे चलती है, ठीक एक C program के statements की तरह।
Theory
एक macro की शारीरिक रचना
VBA Editor खोलने को Alt+F11 दबाइए। एक macro एक Sub procedure है:
Sub FormatReport()
Range("A1").Value = "Monthly Report"
Range("A1").Font.Bold = True
Range("B2:B50").NumberFormat = "0.00"
End Sub
इसे पढ़ना: Sub ... End Sub macro को लपेटता है (जैसे main() एक C program को लपेटता है)। हर line एक object को command करती है: Range("A1") लक्ष्य है, .Value और .Font.Bold set की जाती properties हैं। Cells(row, col) एक cell को number से लक्षित करता है, loops के अंदर काम का।
यह वह code है जो recorder ने पैदा किया। अब Aryan इसे edit कर सकता है।
Quiz
VBA में, line Range("A1").Value = 100 क्या करती है?
- Range object की Value property सेट करके cell A1 की value 100 सेट करती है
- A1 में जो भी है पढ़ती है
- Cell A1 delete करती है
- A1 नामक एक नई sheet बनाती है
Show the answer
Range object की Value property सेट करके cell A1 की value 100 सेट करती है
Range("A1") object है (cell), .Value उसकी property है, और = 100 उस property को सेट करता है, तो A1 100 बन जाता है। यह object-dot-property pattern सारे VBA का मूल है: एक object लक्षित कीजिए, उसकी properties पढ़िए या सेट कीजिए। यह BCA104 C में एक struct member को access करने (student.marks) वाला वही idea है, objects जिनकी properties आप नाम से संबोधित करते हैं।
Think first
आपके C कौशल transfer होते हैं
Aryan चाहता है कि उसका macro A1 से A10 तक cells को bold करे, सिर्फ A1 नहीं। C में वह एक for loop इस्तेमाल करता। VBA में For...Next है। मोटे तौर पर वह कैसे loop करेगा, और यह आपको VBA के बारे में क्या बताता है?
Show the answer
कुछ इस तरह:
For i = 1 To 10
Cells(i, 1).Font.Bold = True
Next i
Cells(i, 1) row i, column 1 को लक्षित करता है, तो loop A1 से A10 को bold करता है। सबक: VBA में BCA104 C जैसे वही programming constructs हैं, variables (Dim), loops (For...Next), decisions (If...Then), बस अलग syntax। आपका programming ज्ञान सीधे transfer होता है; आप एक नई बोली सीख रहे हैं, सोचने का एक नया तरीक़ा नहीं। यही वजह है कि एक BCA student VBA तेज़ी से पकड़ता है।
Watch out
Marks कहाँ कटते हैं
यह न जानना कि VBA macros के पीछे की भाषा है, Alt+F11 से खुलती है, और एक macro एक Sub...End Sub procedure है। object model चूकना: आप Excel को objects (Range, Cells) और उनकी properties (.Value, .Font.Bold) के ज़रिए command करते हैं। और यह भूलना कि recorded macro editable VBA HAI। इस exam के लिए आपको VBA विशेषज्ञ होने की ज़रूरत नहीं, पर आपको Sub structure, Range/Cells objects, और यह कि programming constructs transfer होते हैं, पहचानना होगा।
Theory
Record, read, edit, repeat
VBA सीखने का सबसे तेज़ तरीक़ा एक loop है: एक छोटी क्रिया record कीजिए, Excel ने जो code लिखा उसे read कीजिए, एक चीज़ edit कीजिए, उसे run कीजिए। बाक़ी जिज्ञासा करती है, और आपकी BCA104 नींव मतलब logic पहले से समझ आती है। आगे, हम code को पीछे छोड़ते हैं दो data-power tools के लिए जिन्होंने आधुनिक Excel बदला: Power Query (गंदे data को अपने-आप साफ़ और जोड़ें) और Power Pivot। आगे: Power Query।
Summary
Key takeaways
- VBA (Visual Basic for Applications) Excel macros के पीछे की programming भाषा है।
- Alt+F11 VBA Editor खोलता है; एक macro एक Sub procedure है (Sub Name() ... End Sub)।
- आप Excel को objects (Range, Cells) और उनकी properties (.Value, .Font.Bold) के ज़रिए command करते हैं।
- Recorded macros पठनीय, editable VBA code पैदा करते हैं।
- BCA104 के programming constructs (variables, For loops, If) सीधे VBA में transfer होते हैं।
- याद रखने का hook: Excel objects को एक robot की तरह command करना, लक्षित कीजिए फिर एक property सेट कीजिए।