VBA प्रोग्रामिंग प्लेटफ़ॉर्म जो लगभग सभी Microsoft Office उत्पादों में चलता है, उन उत्पादों के अपने उपयोग को बढ़ाने के लिए उपयोग किए जाने वाले सबसे शक्तिशाली उपकरणों में से एक है।
शुरुआती लोगों के लिए यह वीबीए गाइड आपको दिखाएगा कि अपने ऑफिस एप्लिकेशन में डेवलपर मेनू कैसे जोड़ें, वीबीए संपादक विंडो कैसे दर्ज करें, और बुनियादी वीबीए स्टेटमेंट और लूप कैसे काम करते हैं ताकि आप एक्सेल, वर्ड, पावरपॉइंट में वीबीए का उपयोग शुरू कर सकें। आउटलुक, और वनोट।
यह VBA मार्गदर्शिका Microsoft Office उत्पादों के नवीनतम संस्करण का उपयोग करती है। यदि आपके पास पहले वाला संस्करण है तो आपको स्क्रीनशॉट से कुछ मामूली अंतर दिखाई दे सकते हैं।
VBA संपादक को कैसे सक्षम और उपयोग करें
इस मार्गदर्शिका में उपयोग किए गए किसी भी Office उत्पाद में, आप देख सकते हैं कि आपके पास संदर्भित डेवलपर मेनू नहीं है। डेवलपर मेनू केवल एक्सेल, वर्ड, आउटलुक और पावरपॉइंट में उपलब्ध है। OneNote एप्लिकेशन के अंदर से VBA कोड को संपादित करने के लिए एक उपकरण प्रदान नहीं करता है, लेकिन आप अभी भी अन्य Office प्रोग्रामों से OneNote के साथ सहभागिता करने के लिए OneNote API का संदर्भ दे सकते हैं।
आप हमारी आगामी उन्नत VBA मार्गदर्शिका में यह सीखेंगे कि यह कैसे करना है।
- किसी भी कार्यालय उत्पाद में डेवलपर मेनू को सक्षम करने के लिए, फ़ाइल . चुनें मेनू, और विकल्प . चुनें बाएं नेविगेशन मेनू से।
- आपको एक विकल्प मेनू पॉप-अप दिखाई देगा। रिबन कस्टमाइज़ करें Select चुनें बाएं नेविगेशन मेनू से।
बाईं सूची में उस कार्यालय अनुप्रयोग में उपलब्ध सभी उपलब्ध मेनू और मेनू आदेश शामिल हैं। दाईं ओर की सूची वे हैं जो वर्तमान में उपलब्ध या सक्रिय हैं।
- आपको सूची में दाईं ओर डेवलपर दिखाई देना चाहिए, लेकिन यह सक्रिय नहीं होगा। डेवलपर मेनू को सक्रिय करने के लिए बस चेकबॉक्स चुनें।
- यदि आपको डेवलपर दिखाई नहीं देता है दाईं ओर उपलब्ध है, फिर बाईं ओर बदलें आदेश चुनें ड्रॉपडाउन से सभी कमांड . तक . डेवलपर ढूंढें सूची से और जोड़ें>> . चुनें उस मेनू को रिबन में जोड़ने के लिए केंद्र में।
- ठीकचुनें जब आपका काम हो जाए।
- डेवलपर मेनू सक्रिय होने के बाद, आप अपनी मुख्य एप्लिकेशन विंडो पर वापस जा सकते हैं और डेवलपर का चयन कर सकते हैं शीर्ष मेनू से।
- फिर कोड देखें का चयन करें रिबन में नियंत्रण समूह से VBA संपादक विंडो खोलने के लिए।
- इससे VBA संपादक विंडो खुल जाएगी जहां आप वह कोड टाइप कर सकते हैं जो आप अगले कुछ अनुभागों में सीखेंगे।
- डेवलपर मेनू को आपके द्वारा प्रतिदिन उपयोग किए जाने वाले कुछ Office अनुप्रयोगों में जोड़ने का प्रयास करें। एक बार जब आप वीबीए संपादक विंडो खोलने में सहज हो जाएं, तो इस गाइड के अगले भाग पर जाएं।
शुरुआती के लिए सामान्य VBA प्रोग्रामिंग युक्तियाँ
आप देखेंगे कि जब VBA संपादक खुलता है, तो बाएँ फलक में नेविगेशन विकल्प एक Office अनुप्रयोग से दूसरे में भिन्न दिखाई देते हैं।
ऐसा इसलिए है क्योंकि उपलब्ध ऑब्जेक्ट जहां आप वीबीए कोड रख सकते हैं, इस पर निर्भर करता है कि एप्लिकेशन में कौन सी वस्तुएं हैं। उदाहरण के लिए, एक्सेल में, आप वर्कबुक या शीट ऑब्जेक्ट में वीबीए कोड जोड़ सकते हैं। Word में, आप दस्तावेज़ों में VBA कोड जोड़ सकते हैं। पावरपॉइंट में, केवल मॉड्यूल के लिए।
तो, विभिन्न मेनू से आश्चर्यचकित न हों। VBA कोड की संरचना और सिंटैक्स सभी अनुप्रयोगों में समान है। केवल अंतर केवल वे वस्तुएं हैं जिनका आप संदर्भ दे सकते हैं और वे कार्य जो आप उन वस्तुओं पर VBA कोड के माध्यम से कर सकते हैं।
इससे पहले कि हम VBA कोड के माध्यम से उन पर की जा सकने वाली विभिन्न वस्तुओं और कार्यों में गोता लगाएँ, आइए पहले सबसे सामान्य VBA संरचना और सिंटैक्स को देखें, जिसका उपयोग आप VBA कोड लिखते समय कर सकते हैं।
VBA कोड कहां रखें
जब आप VBA संपादक में होते हैं, तो आपको यह चुनने के लिए संपादन विंडो के शीर्ष पर दो ड्रॉपडाउन बॉक्स का उपयोग करना होगा कि आप किस ऑब्जेक्ट को कोड संलग्न करना चाहते हैं, और जब आप कोड चलाना चाहते हैं।
उदाहरण के लिए, एक्सेल में, यदि आप वर्कशीट . चुनते हैं और सक्रिय करें , जब भी वर्कशीट खोली जाएगी तो कोड चलेगा।
अन्य वर्कशीट कार्रवाइयां जिनका उपयोग आप अपने वीबीए कोड को ट्रिगर करने के लिए कर सकते हैं, जब वर्कशीट बदलती है, जब यह बंद हो जाती है (निष्क्रिय), जब वर्कशीट गणना चलती है, और बहुत कुछ।
जब आप संपादक में VBA कोड जोड़ते हैं, तो हमेशा सुनिश्चित करें कि अपना VBA कोड ऑब्जेक्ट पर रखें और उस सही क्रिया का उपयोग करें जिसका उपयोग आप उस कोड को ट्रिगर करने के लिए करना चाहते हैं।
VBA IF स्टेटमेंट्स
एक IF स्टेटमेंट VBA में ठीक वैसे ही काम करता है जैसे यह किसी अन्य प्रोग्रामिंग भाषा में काम करता है।
IF स्टेटमेंट का पहला भाग यह देखता है कि कोई शर्त या शर्तों का सेट सत्य है या नहीं। इन शर्तों को एक AND या OR ऑपरेटर द्वारा एक साथ जोड़ने के लिए जोड़ा जा सकता है।
एक उदाहरण यह जांचना होगा कि स्प्रेडशीट में कोई ग्रेड "पासिंग" ग्रेड से ऊपर या नीचे है, और किसी अन्य सेल को पास या फेल स्थिति निर्दिष्ट करना है।
यदि कक्ष(2, 2)> 75 तब कक्ष(2, 3) ="पास" अन्य कक्ष(2, 3) ="विफल"
अगर आप एक ही लाइन पर पूरा स्टेटमेंट नहीं चाहते हैं, तो आप लाइनों के अंत में एक "_" चिन्ह जोड़कर इसे कई लाइनों में विभाजित कर सकते हैं।
यदि कक्ष(2, 2)> 75 तो _
सेल(2, 3) ="पास" वरना _
कोशिका(2, 3) ="विफल"
इस तकनीक का उपयोग करने से अक्सर कोड को पढ़ना और डीबग करना बहुत आसान हो जाता है।
अगले लूप्स के लिए VBA
एकल तुलना के लिए IF कथन बहुत अच्छे हैं, जैसे कि किसी एकल कक्ष को देखने का उदाहरण। लेकिन क्या होगा यदि आप सेल की एक पूरी श्रृंखला के माध्यम से लूप करना चाहते हैं और प्रत्येक पर एक ही IF स्टेटमेंट करना चाहते हैं?
इस मामले में आपको फॉर लूप की आवश्यकता होगी।
ऐसा करने के लिए, आपको एक सीमा की लंबाई का उपयोग करना होगा, और उस लंबाई के माध्यम से डेटा वाली पंक्तियों की संख्या से लूप करना होगा।
ऐसा करने के लिए, आपको रेंज और सेल वेरिएबल्स को परिभाषित करना होगा, और उनके माध्यम से लूप करना होगा। आपको एक काउंटर को परिभाषित करने की भी आवश्यकता होगी ताकि आप परिणामों को उपयुक्त पंक्ति में आउटपुट कर सकें। तो आपके VBA कोड में सबसे पहले यह लाइन होगी।
डिम rng as रेंज, सेल as रेंज
डिम रोकाउंटर को इंटीजर के रूप में
रेंज आकार को निम्नानुसार परिभाषित करें।
सेट आरएनजी =रेंज(“बी2:बी7”)
पंक्ति काउंटर =2
अंत में, आप उस श्रेणी में प्रत्येक सेल के माध्यम से कदम उठाने के लिए अपना फॉर लूप बना सकते हैं और तुलना कर सकते हैं।
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 जबकि लूप्स
ए जबकि लूप भी फॉर लूप की तरह ही बयानों की एक श्रृंखला के माध्यम से लूप करता है, लेकिन लूपिंग जारी रखने की शर्त एक शर्त है जो सही है।
उदाहरण के लिए, आप ऊपर दिए गए FOR लूप को WHILE लूप के रूप में, केवल rowCounter चर का उपयोग करके निम्नानुसार लिख सकते हैं।
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 पर समाप्त होने की आवश्यकता होती है जहां डेटा समाप्त होता है। हालांकि, श्रेणी की गिनती (बी2:बी7) केवल 6 है, और जबकि लूप केवल तभी समाप्त होगा जब काउंटर काउंटर से बड़ा होगा - इसलिए अंतिम पंक्ति काउंटर का मान 8 (या rng.Count + 2) होना चाहिए।
आप जबकि लूप को इस प्रकार भी सेट कर सकते हैं:
जबकि पंक्ति काउंटर <=rng.Count + 1
आप रेंज काउंट (6) को केवल 1 से बढ़ा सकते हैं, क्योंकि एक बार जब RowCounter वेरिएबल डेटा के अंत (पंक्ति 7) तक पहुंच जाता है, तो लूप खत्म हो सकता है।
VBA लूप्स तक करें और करें
डू व्हेयर और डू जब तक लूप, जबकि लूप के लगभग समान होते हैं, लेकिन थोड़ा अलग काम करते हैं।
- द जबकि लूप जाँचता है कि लूप की शुरुआत में कोई शर्त सही है या नहीं।
- द डू-जबकि लूप लूप में स्टेटमेंट को निष्पादित करने के बाद जांचता है कि कोई शर्त सही है या नहीं।
- द लूप तक करें जाँचता है कि लूप निष्पादित करने के बाद भी कोई शर्त गलत है या नहीं।
इस मामले में आप ऊपर दिए गए जबकि लूप को डू-व्हाइल लूप के रूप में फिर से लिखेंगे।
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 या डू-जब तक लूप सही विकल्प है।
VBA चुनिंदा केस स्टेटमेंट
अपने वीबीए कोड की संरचना शुरू करने के लिए आपको अंतिम प्रकार के तार्किक कथन को समझने की आवश्यकता होगी, केस स्टेटमेंट चुनें।
ऊपर दिए गए उदाहरण को देखते हुए, मान लें कि आप एक ग्रेडिंग पद्धति चाहते हैं जो केवल पास न हो। इसके बजाय, आप A से F तक एक अक्षर ग्रेड असाइन करना चाहते हैं।
आप इसे निम्न केस स्टेटमेंट के साथ कर सकते हैं:
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 का उपयोग शुरू करने के लिए जानना आवश्यक है।