लगभग सभी Microsoft Office उत्पादों में चलने वाला VBA प्रोग्रामिंग प्लेटफॉर्म सबसे शक्तिशाली उपकरणों में से एक है जिसका उपयोग कोई भी उन उत्पादों के अपने उपयोग को बढ़ाने के लिए कर सकता है।
यह शुरुआती लोगों के लिए VBA गाइड आपको दिखाएगा कि अपने Office एप्लिकेशन में डेवलपर मेनू कैसे जोड़ें, VBA एडिटर विंडो कैसे दर्ज करें, और बेसिक VBA स्टेटमेंट और लूप कैसे काम करते हैं ताकि आप Excel, Word, PowerPoint, Outlook, और OneNote में VBA का उपयोग शुरू कर सकें।
यह VBA गाइड Microsoft Office उत्पादों के नवीनतम संस्करण का उपयोग करता है। यदि आपके पास पहले का संस्करण है तो आप स्क्रीनशॉट से कुछ मामूली अंतर देख सकते हैं।
VBA एडिटर को कैसे सक्षम और उपयोग करें
इस गाइड में उपयोग किए गए किसी भी Office उत्पाद में, आप देख सकते हैं कि आपके पास संदर्भित डेवलपर मेनू नहीं है। डेवलपर मेनू केवल Excel, Word, Outlook, और PowerPoint में उपलब्ध है। OneNote एप्लिकेशन के अंदर से VBA कोड संपादित करने के लिए एक टूल प्रदान नहीं करता है, लेकिन आप OneNote API को संदर्भित करके अन्य Office प्रोग्राम से OneNote के साथ इंटरैक्ट कर सकते हैं।
आप यह करना हमारे आगामी उन्नत VBA गाइड में सीखेंगे।
- किसी भी Office उत्पाद में डेवलपर मेनू को सक्षम करने के लिए, File मेनू चुनें, और बाएं नेविगेशन मेनू से Options चुनें।
- आपको एक Options मेनू पॉप-अप दिखाई देगा। बाएं नेविगेशन मेनू से Customize Ribbon चुनें।
बाईं सूची में उस Office एप्लिकेशन में उपलब्ध सभी मेनू और मेनू कमांड शामिल हैं। दाईं ओर की सूची वे हैं जो वर्तमान में उपलब्ध या सक्रिय हैं।
- आपको दाईं ओर की सूची में Developer देखना चाहिए, लेकिन यह सक्रिय नहीं होगा। डेवलपर मेनू को सक्रिय करने के लिए बस चेकबॉक्स चुनें।
- यदि आपको दाईं ओर Developer उपलब्ध नहीं दिखता है, तो बाएं Choose commands ड्रॉपडाउन को All Commands पर बदलें। सूची से Developer ढूंढें और केंद्र में Add>> चुनें ताकि उस मेनू को रिबन में जोड़ा जा सके।
- जब आप पूरा कर लें तो OK चुनें।
- एक बार डेवलपर मेनू सक्रिय हो जाने पर, आप अपनी मुख्य एप्लिकेशन विंडो पर वापस जा सकते हैं और शीर्ष मेनू से Developer चुनें।
- फिर रिबन में Controls ग्रुप से View Code चुनें ताकि VBA एडिटर विंडो खुल सके।
- यह VBA एडिटर विंडो खोलेगा जहां आप अगले कुछ अनुभागों में सीखे जाने वाले कोड को टाइप कर सकते हैं।
- उन कुछ Office एप्लिकेशन में डेवलपर मेनू जोड़ने का प्रयास करें जिनका आप हर दिन उपयोग करते हैं। एक बार जब आप VBA एडिटर विंडो खोलने में सहज हो जाएं, तो इस गाइड के अगले अनुभाग पर जाएं।
शुरुआती लोगों के लिए सामान्य VBA प्रोग्रामिंग टिप्स
आप देखेंगे कि जब VBA एडिटर खुलता है, तो बाएं पैनल में नेविगेशन विकल्प एक Office एप्लिकेशन से दूसरे में भिन्न दिखते हैं।
ऐसा इसलिए है क्योंकि जिन उपलब्ध ऑब्जेक्ट्स में आप VBA कोड रख सकते हैं, वे एप्लिकेशन में मौजूद ऑब्जेक्ट्स पर निर्भर करते हैं। उदाहरण के लिए, Excel में, आप वर्कबुक या शीट ऑब्जेक्ट्स में VBA कोड जोड़ सकते हैं। Word में, आप डॉक्यूमेंट्स में VBA कोड जोड़ सकते हैं। PowerPoint में, केवल मॉड्यूल्स में।
इसलिए, अलग-अलग मेनू से आश्चर्यचकित न हों। सभी एप्लिकेशन में VBA कोड की संरचना और सिंटैक्स समान है। एकमात्र अंतर वे ऑब्जेक्ट्स हैं जिन्हें आप संदर्भित कर सकते हैं और VBA कोड के माध्यम से उन ऑब्जेक्ट्स पर आप जो क्रियाएं कर सकते हैं।
इससे पहले कि हम उन विभिन्न ऑब्जेक्ट्स और VBA कोड के माध्यम से आप उन पर जो क्रियाएं कर सकते हैं, में गोता लगाएं, आइए पहले सबसे सामान्य VBA संरचना और सिंटैक्स को देखें जिनका उपयोग आप VBA कोड लिखते समय कर सकते हैं।
VBA कोड कहां रखें
जब आप VBA एडिटर में हों, तो आपको संपादन विंडो के शीर्ष पर दो ड्रॉपडाउन बॉक्स का उपयोग करके यह चुनना होगा कि आप किस ऑब्जेक्ट से कोड संलग्न करना चाहते हैं, और आप कब चाहते हैं कि कोड चले।
उदाहरण के लिए, Excel में, यदि आप Worksheet और Activate चुनते हैं, तो कोड जब भी वर्कशीट खोली जाएगी तब चलेगा।
अन्य वर्कशीट क्रियाएं जिनका उपयोग आप अपने VBA कोड को ट्रिगर करने के लिए कर सकते हैं उनमें शामिल हैं जब वर्कशीट बदलती है, जब यह बंद होती है (निष्क्रिय), जब वर्कशीट गणना चलती है, और बहुत कुछ।
जब आप एडिटर में VBA कोड जोड़ते हैं, तो हमेशा सुनिश्चित करें कि आप अपने VBA कोड को उस ऑब्जेक्ट पर और सही क्रिया का उपयोग करके रखें जिसका उपयोग आप उस कोड को ट्रिगर करने के लिए करना चाहते हैं।
VBA IF स्टेटमेंट्स
IF स्टेटमेंट VBA में ठीक वैसे ही काम करता है जैसे यह किसी अन्य प्रोग्रामिंग भाषा में काम करता है।
IF स्टेटमेंट का पहला भाग देखता है कि कोई शर्त या शर्तों का सेट सत्य है या नहीं। इन शर्तों को AND या OR ऑपरेटर द्वारा जोड़ा जा सकता है ताकि उन्हें एक साथ जोड़ा जा सके।
एक उदाहरण स्प्रेडशीट में किसी ग्रेड की जांच करना होगा कि क्या यह "पासिंग" ग्रेड से ऊपर या नीचे है, और पास या फेल स्थिति को दूसरे सेल में निर्दिष्ट करना।
If Cells(2, 2) > 75 Then Cells(2, 3) = "Pass" Else Cells(2, 3) = "Fail"
यदि आप पूरे स्टेटमेंट को एक ही लाइन पर नहीं चाहते हैं, तो आप लाइनों के अंत में "_" सिंबल जोड़कर इसे कई लाइनों में विभाजित कर सकते हैं।
If Cells(2, 2) > 75 Then _
Cells(2, 3) = "Pass" Else _
Cells(2, 3) = "Fail"
इस तकनीक का उपयोग करने से कोड पढ़ने और डीबग करने में बहुत आसान हो सकता है।
VBA For Next लूप्स
IF स्टेटमेंट्स एकल तुलना के लिए बहुत अच्छे हैं, जैसे ऊपर एकल सेल देखने का उदाहरण। लेकिन क्या होगा यदि आप सेल की पूरी रेंज के माध्यम से लूप करना चाहते हैं और प्रत्येक पर वही IF स्टेटमेंट करना चाहते हैं?
इस मामले में आपको FOR लूप की आवश्यकता होगी।
ऐसा करने के लिए, आपको एक रेंज की लंबाई का उपयोग करना होगा, और उस लंबाई के माध्यम से लूप करना होगा जिसमें डेटा वाली पंक्तियों की संख्या से।
ऐसा करने के लिए, आपको रेंज और सेल वेरिएबल को परिभाषित करना होगा, और उनके माध्यम से लूप करना होगा। आपको एक काउंटर भी परिभाषित करना होगा ताकि आप परिणामों को उपयुक्त पंक्ति में आउटपुट कर सकें। इसलिए आपका VBA कोड पहले इस लाइन के साथ होगा।
Dim rng As Range, cell As Range
Dim rowCounter as Integer
रेंज आकार को निम्नानुसार परिभाषित करें।
Set rng = Range("B2:B7")
rowCounter = 2
अंत में, आप उस रेंज में हर सेल के माध्यम से स्टेप करने और तुलना करने के लिए अपना FOR लूप बना सकते हैं।
For Each cell In rng If cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell
एक बार जब यह VBA स्क्रिप्ट चलती है, तो आप वास्तविक स्प्रेडशीट में परिणाम देखते हैं।
VBA While लूप्स
एक While लूप भी FOR लूप की तरह ही स्टेटमेंट्स की एक श्रृंखला के माध्यम से लूप करता है, लेकिन लूप जारी रखने की शर्त एक शर्त का सत्य रहना है।
उदाहरण के लिए, आप ऊपर दिए गए FOR लूप को, केवल rowCounter वेरिएबल का उपयोग करके, WHILE लूप के रूप में लिख सकते हैं।
While rowCounter < rng.Count + 2 If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend
नोट: rng.Count + 2 समाप्ति सीमा आवश्यक है क्योंकि रो काउंटर 2 से शुरू होता है और रो 7 पर समाप्त होना होता है जहां डेटा समाप्त होता है। हालांकि, रेंज (B2:B7) की गिनती केवल 6 है, और While लूप केवल तभी समाप्त होगा जब काउंटर काउंटर से अधिक हो - इसलिए अंतिम rowCounter मान 8 होना चाहिए (या rng.Count + 2)।
आप While लूप को निम्नानुसार भी सेट कर सकते हैं:
While rowCounter <= rng.Count + 1
आप रेंज काउंट (6) को केवल 1 से बढ़ा सकते हैं, क्योंकि एक बार rowCounter वेरिएबल डेटा के अंत (रो 7) तक पहुंच जाता है, लूप समाप्त हो सकता है।
VBA Do While और Do Until लूप्स
Do While और Do Until लूप्स While लूप्स के लगभग समान हैं, लेकिन थोड़ा अलग तरीके से काम करते हैं।
- While लूप लूप की शुरुआत में जांचता है कि कोई शर्त सत्य है या नहीं।
- Do-While लूप लूप में स्टेटमेंट्स निष्पादित करने के बाद जांचता है कि कोई शर्त सत्य है या नहीं।
- Do-Until लूप लूप निष्पादित करने के बाद जांचता है कि कोई शर्त अभी भी असत्य है या नहीं।
इस मामले में आप ऊपर दिए गए While लूप को निम्नानुसार Do-While लूप के रूप में फिर से लिखेंगे।
Do If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2
इस मामले में तर्क बहुत अधिक नहीं बदलता है, लेकिन यदि आप यह सुनिश्चित करना चाहते हैं कि तर्क तुलना सभी स्टेटमेंट्स चलने के बाद होती है (उन सभी को कम से कम एक बार चलाने की अनुमति देना चाहे कुछ भी हो), तो Do-While या Do-Until लूप सही विकल्प है।
VBA Select Case स्टेटमेंट्स
अपने VBA कोड को संरचना करना शुरू करने के लिए आपको समझने की आवश्यकता वाले तार्किक स्टेटमेंट का अंतिम प्रकार Select Case स्टेटमेंट्स हैं।
ऊपर दिए गए उदाहरण को देखते हुए, मान लें कि आप एक ग्रेडिंग विधि चाहते हैं जो केवल पास फेल नहीं है। इसके बजाय, आप A से F तक एक लेटर ग्रेड निर्दिष्ट करना चाहते हैं।
आप निम्न Select Case स्टेटमेंट के साथ ऐसा कर सकते हैं:
For Each cell In rng Select Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell
इस VBA स्क्रिप्ट के चलने के बाद परिणामी स्प्रेडशीट नीचे दिए गए जैसा दिखता है।
अब आप अपने Microsoft Office एप्लिकेशन में VBA का उपयोग शुरू करने के लिए आवश्यक सब कुछ जानते हैं।