सर्वश्रेष्ठ वीबीए गाइड (शुरुआती के लिए) आपको कभी आवश्यकता होगी

VBA प्रोग्रामिंग(VBA programming) प्लेटफ़ॉर्म जो लगभग सभी Microsoft Office उत्पादों पर चलता है , उन(Microsoft Office) उत्पादों के अपने उपयोग को बढ़ाने के लिए सबसे शक्तिशाली उपकरणों में से एक है जिसका उपयोग कोई भी कर सकता है।

शुरुआती लोगों के लिए यह वीबीए(VBA) गाइड आपको दिखाएगा कि अपने ऑफिस(Office) एप्लिकेशन में डेवलपर(Developer) मेनू कैसे जोड़ें, वीबीए(VBA) संपादक विंडो कैसे दर्ज करें, और बुनियादी वीबीए(VBA) स्टेटमेंट और लूप कैसे काम करते हैं ताकि आप एक्सेल(Excel) , वर्ड(Word) , पावरपॉइंट(Powerpoint) में वीबीए(VBA) का उपयोग शुरू कर सकें । आउटलुक(Outlook) , और वननोट(OneNote)

यह VBA मार्गदर्शिका (VBA)Microsoft Office उत्पादों के नवीनतम संस्करण का उपयोग करती है । यदि आपके पास पहले वाला संस्करण है, तो आप स्क्रीनशॉट से कुछ मामूली अंतर देख सकते हैं।

वीबीए संपादक को कैसे सक्षम और उपयोग करें(How To Enable & Use The VBA Editor)

इस मार्गदर्शिका में उपयोग किए गए किसी भी Office उत्पाद में, आप देख सकते हैं कि आपके पास संदर्भित डेवलपर(Developer) मेनू नहीं है। डेवलपर मेनू केवल एक्सेल(Excel) , वर्ड(Word) , आउटलुक(Outlook) और पावरपॉइंट(Powerpoint) में उपलब्ध है । OneNote एप्लिकेशन के अंदर से (OneNote)VBA कोड को संपादित करने के लिए एक उपकरण प्रदान नहीं करता है , लेकिन आप अभी भी अन्य Office प्रोग्रामों  से OneNote के साथ सहभागिता करने के लिए OneNote API का संदर्भ दे सकते हैं।(OneNote API)

आप हमारी आगामी उन्नत VBA(Advanced VBA) मार्गदर्शिका में यह सीखेंगे कि यह कैसे करना है।

  • किसी भी कार्यालय उत्पाद में डेवलपर(Developer) मेनू को सक्षम करने के लिए , फ़ाइल(File) मेनू का चयन करें, और बाएं नेविगेशन मेनू से  विकल्प चुनें।(Options)
  • आपको एक विकल्प(Options) मेनू पॉप-अप दिखाई देगा। बाएं नेविगेशन मेनू से रिबन कस्टमाइज़(Customize Ribbon) करें चुनें ।

बाईं सूची में उस कार्यालय(Office) अनुप्रयोग में उपलब्ध सभी उपलब्ध मेनू और मेनू आदेश शामिल हैं । दाईं ओर की सूची वे हैं जो वर्तमान में उपलब्ध या सक्रिय हैं।

  • आपको सूची में डेवलपर(Developer) को दाईं ओर देखना चाहिए , लेकिन यह सक्रिय नहीं होगा। डेवलपर(Developer) मेनू को सक्रिय करने के लिए बस(Just) चेकबॉक्स चुनें।

  • यदि आप डेवलपर(Developer) को दाईं ओर उपलब्ध नहीं देखते हैं , तो बाईं ओर कमांड चुनें(Choose commands) ड्रॉपडाउन से सभी कमांड(All Commands) में बदलें । सूची से डेवलपर(Developer) ढूंढें और उस मेनू को रिबन में जोड़ने के लिए केंद्र में (Ribbon)Add>> चुनें ।
  • जब आप कर लें तो ठीक(OK) चुनें ।
  • डेवलपर(Developer) मेनू सक्रिय होने के बाद , आप अपनी मुख्य एप्लिकेशन विंडो पर वापस जा सकते हैं और शीर्ष मेनू से  डेवलपर का चयन कर सकते हैं।(Developer)
  • फिर वीबीए(VBA) संपादक विंडो खोलने के लिए रिबन में नियंत्रण(Controls) समूह से कोड देखें चुनें।(View Code)

  • यह VBA(VBA) संपादक विंडो खोलेगा जहाँ आप वह कोड टाइप कर सकते हैं जो आप अगले कुछ अनुभागों में सीखेंगे।

  • आपके द्वारा प्रतिदिन उपयोग किए जाने वाले कुछ Office अनुप्रयोगों में (Office)डेवलपर(Developer) मेनू जोड़ने का प्रयास करें । एक बार जब आप वीबीए(VBA) संपादक विंडो खोलने में सहज हो जाएं, तो इस गाइड के अगले भाग पर जारी रखें।

शुरुआती के लिए सामान्य वीबीए प्रोग्रामिंग टिप्स(General VBA Programming Tips for Beginners)

आप देखेंगे कि जब VBA संपादक खुलता है, तो बाएँ फलक में नेविगेशन विकल्प एक Office अनुप्रयोग से दूसरे में भिन्न दिखाई देते हैं।

ऐसा इसलिए है क्योंकि उपलब्ध ऑब्जेक्ट जहां आप वीबीए(VBA) कोड रख सकते हैं, इस पर निर्भर करता है कि एप्लिकेशन में कौन सी वस्तुएं हैं। उदाहरण के लिए, एक्सेल(Excel) में, आप वर्कबुक या शीट ऑब्जेक्ट में वीबीए(VBA) कोड जोड़ सकते हैं । Word में , आप दस्तावेज़ों में VBA कोड जोड़ सकते हैं । पावरपॉइंट(Powerpoint) में , केवल मॉड्यूल के लिए।

तो, विभिन्न मेनू से आश्चर्यचकित न हों। VBA कोड की संरचना और सिंटैक्स सभी अनुप्रयोगों में समान है। केवल अंतर वे वस्तुएं हैं जिनका आप संदर्भ दे सकते हैं और वे कार्य जो आप उन वस्तुओं पर VBA कोड के माध्यम से कर सकते हैं।

इससे पहले कि हम वीबीए कोड के माध्यम से उन विभिन्न वस्तुओं और कार्यों में गोता लगाएँ, जिन्हें आप वीबीए(VBA) कोड के माध्यम से ले सकते हैं, आइए पहले सबसे सामान्य वीबीए संरचना और सिंटैक्स को देखें, जिसका उपयोग आप (VBA)वीबीए(VBA) कोड लिखते समय कर सकते हैं ।

वीबीए कोड कहां लगाएं(Where To Put VBA Code)

जब आप VBA संपादक में होते हैं, तो आपको यह चुनने के लिए संपादन विंडो के शीर्ष पर दो ड्रॉपडाउन बॉक्स का उपयोग करना होगा कि आप किस ऑब्जेक्ट को कोड संलग्न करना चाहते हैं, और जब आप कोड चलाना चाहते हैं।

उदाहरण के लिए, एक्सेल(Excel) में , यदि आप वर्कशीट(Worksheet) और एक्टिवेट(Activate) चुनते हैं, तो जब भी वर्कशीट खोली जाएगी तो कोड चलेगा। 

अन्य वर्कशीट कार्रवाइयां जिनका उपयोग आप अपने वीबीए(VBA) कोड को ट्रिगर करने के लिए कर सकते हैं, जब वर्कशीट बदलती है, जब यह बंद हो जाती है (निष्क्रिय), जब वर्कशीट गणना चलती है, और बहुत कुछ।

जब आप संपादक में VBA कोड जोड़ते हैं, तो हमेशा अपने (VBA)VBA कोड को ऑब्जेक्ट पर रखना सुनिश्चित करें और उस सही क्रिया का उपयोग करें जिसका उपयोग आप उस कोड को ट्रिगर करने के लिए करना चाहते हैं।

वीबीए आईएफ स्टेटमेंट्स(VBA IF Statements)

एक 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 Loops)

एकल तुलना के लिए 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 script) चलाई जाती है, तो आप वास्तविक स्प्रेडशीट में परिणाम देखते हैं।

वीबीए जबकि लूप्स(VBA While Loops)

ए जबकि लूप(Loop) भी फॉर(FOR) लूप की तरह ही बयानों की एक श्रृंखला के माध्यम से लूप करता है, लेकिन लूपिंग जारी रखने की स्थिति एक शर्त है जो सही है।

उदाहरण के लिए, आप ऊपर दिए गए FOR लूप को (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) होना चाहिए (GREATER)

आप जबकि लूप को निम्नानुसार भी सेट कर सकते हैं:

While rowCounter <= rng.Count + 1

आप केवल रेंज काउंट (6) को 1 से बढ़ा सकते हैं, क्योंकि एक बार RowCounter वैरिएबल डेटा के अंत (पंक्ति 7) तक पहुँच जाता है, तो लूप समाप्त हो सकता है।

वीबीए करते हैं और लूप्स तक करते हैं(VBA Do While and Do Until Loops)

तब तक करें और तब तक करें जब तक कि लूप, जबकि लूप के लगभग समान न हों, लेकिन थोड़ा अलग काम करते हैं।

  • जबकि लूप(While Loop) जाँचता है कि लूप की शुरुआत में कोई शर्त सही है या नहीं ।
  • डू-व्हाइल लूप(Do-While Loop) यह जांचता है कि लूप में स्टेटमेंट्स को निष्पादित करने के बाद कोई शर्त सही है या नहीं।
  • डू-अप लूप(Do-Until Loop) यह जांचता है कि लूप को निष्पादित करने के बाद भी कोई शर्त गलत है या नहीं।

इस मामले में आप ऊपर दिए गए जबकि लूप को डू-व्हाइल लूप के रूप में फिर से लिखेंगे।

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 सेलेक्ट केस स्टेटमेंट्स(VBA Select Case Statements)

अपने वीबीए(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 का उपयोग शुरू करने के लिए जानना आवश्यक है।(VBA)



About the author

मैं 10 से अधिक वर्षों के अनुभव के साथ एक कंप्यूटर पेशेवर हूं। अपने खाली समय में, मुझे ऑफिस डेस्क पर मदद करना और बच्चों को इंटरनेट का उपयोग करना सिखाना पसंद है। मेरे कौशल में बहुत सी चीजें शामिल हैं, लेकिन सबसे महत्वपूर्ण बात यह है कि मुझे पता है कि लोगों को समस्याओं को हल करने में कैसे मदद करनी है। अगर आपको किसी ऐसे व्यक्ति की ज़रूरत है जो आपकी किसी अत्यावश्यक चीज़ में मदद कर सके या बस कुछ बुनियादी सुझाव चाहते हों, तो कृपया मुझसे संपर्क करें!



Related posts