excel-vba ट्यूटोरियल
एक्सेल-वीबीए के साथ शुरुआत करना
खोज…
टिप्पणियों
Microsoft Excel में VBA नामक एक व्यापक मैक्रो प्रोग्रामिंग भाषा शामिल है। यह प्रोग्रामिंग भाषा आपको कम से कम तीन अतिरिक्त संसाधन प्रदान करती है:
- मैक्रोज़ का उपयोग करके कोड से एक्सेल को स्वचालित रूप से ड्राइव करें। अधिकांश भाग के लिए, उपयोगकर्ता इंटरफ़ेस से एक्सेल में हेरफेर करके उपयोगकर्ता जो कुछ भी कर सकता है वह एक्सेल VBA में कोड लिखकर किया जा सकता है।
- नई, कस्टम वर्कशीट फ़ंक्शन बनाएं।
- Microsoft Word, PowerPoint, Internet Explorer, Notepad आदि जैसे अन्य अनुप्रयोगों के साथ एक्सेल को इंटरैक्ट करें।
VBA अनुप्रयोगों के लिए Visual Basic के लिए खड़ा है। यह आदरणीय विजुअल बेसिक प्रोग्रामिंग भाषा का एक कस्टम संस्करण है जिसने 1990 के दशक के मध्य से माइक्रोसॉफ्ट एक्सेल के मैक्रोज़ को संचालित किया है।
महत्वपूर्ण
कृपया सुनिश्चित करें कि excel-vba टैग के भीतर बनाए गए कोई भी उदाहरण या विषय Microsoft Excel के साथ VBA के उपयोग के लिए विशिष्ट और प्रासंगिक हैं । किसी भी सुझाए गए विषय या उदाहरण प्रदान किए गए जो प्रयासों के दोहराव को रोकने के लिए वीबीए भाषा के लिए सामान्य हैं।
विषय पर उदाहरण:
Objects वर्कशीट ऑब्जेक्ट के साथ बनाना और इंटरैक्ट करना
✓WorksheetFunction
वर्ग और संबंधित विधियाँ
xlDirection
एक रेंज नेविगेट करने के लिएxlDirection
एन्यूमरेशन का उपयोग करना
ऑफ-टॉपिक उदाहरण:
A प्रत्येक 'लूप के लिए' कैसे बनाएं
।MsgBox
वर्ग और संदेश प्रदर्शित करने का तरीका
VBA में WinAPI का उपयोग करना
संस्करण
वीबी
संस्करण | रिलीज़ की तारीख |
---|---|
VB6 | 1998/10/01 |
VB7 | 2001/06/06 |
WIN32 | 1998/10/01 |
Win64 | 2001/06/06 |
मैक | 1998/10/01 |
एक्सेल
संस्करण | रिलीज़ की तारीख |
---|---|
16 | 2016/01/01 |
15 | 2013-01-01 |
14 | 2010-01-01 |
12 | 2007/01/01 |
1 1 | 2003/01/01 |
10 | 2001/01/01 |
9 | 1999/01/01 |
8 | 1997/01/01 |
7 | 1995/01/01 |
5 | 1993/01/01 |
2 | 1987/01/01 |
वेरिएबल्स की घोषणा
VBA में चर को स्पष्ट रूप से घोषित करने के लिए, Dim
स्टेटमेंट का उपयोग करें, इसके बाद वेरिएबल नाम और टाइप करें। यदि एक चर का उपयोग घोषित किए बिना किया जाता है, या यदि कोई प्रकार निर्दिष्ट नहीं किया जाता है, तो उसे टाइप Variant
सौंपा जाएगा।
उपयोग से पहले घोषित किए जाने वाले सभी चर को बाध्य करने के लिए किसी मॉड्यूल की पहली पंक्ति पर Option Explicit
विवरण का उपयोग करें (देखें ALWAYS उपयोग "विकल्प स्पष्ट" )।
हमेशा Option Explicit
का उपयोग करने की अत्यधिक अनुशंसा की जाती है क्योंकि यह टाइपो / वर्तनी त्रुटियों को रोकने में मदद करता है और यह सुनिश्चित करता है कि चर / वस्तुएं अपने इच्छित प्रकार पर रहेंगी।
Option Explicit
Sub Example()
Dim a As Integer
a = 2
Debug.Print a
'Outputs: 2
Dim b As Long
b = a + 2
Debug.Print b
'Outputs: 4
Dim c As String
c = "Hello, world!"
Debug.Print c
'Outputs: Hello, world!
End Sub
अल्पविरामों को सीमांकक के रूप में उपयोग करके एक ही लाइन पर कई चर घोषित किए जा सकते हैं, लेकिन प्रत्येक प्रकार को व्यक्तिगत रूप से घोषित किया जाना चाहिए , या वे Variant
प्रकार के लिए डिफ़ॉल्ट होंगे।
Dim Str As String, IntOne, IntTwo As Integer, Lng As Long
Debug.Print TypeName(Str) 'Output: String
Debug.Print TypeName(IntOne) 'Output: Variant <--- !!!
Debug.Print TypeName(IntTwo) 'Output: Integer
Debug.Print TypeName(Lng) 'Output: Long
वेरिएबल्स को डेटा टाइप कैरेक्टर प्रत्ययों ($% और! # @) का उपयोग करके भी घोषित किया जा सकता है, हालांकि इनका उपयोग करने से तेजी से हतोत्साहित किया जाता है।
Dim this$ 'String
Dim this% 'Integer
Dim this& 'Long
Dim this! 'Single
Dim this# 'Double
Dim this@ 'Currency
चर घोषित करने के अन्य तरीके हैं:
-
Static
जैसे:Static CounterVariable as Integer
जब आप मंद कथन के बजाय स्टेटिक स्टेटमेंट का उपयोग करते हैं, तो घोषित चर कॉल के बीच इसके मूल्य को बनाए रखेगा।
-
Public
तरह:Public CounterVariable as Integer
सार्वजनिक चर का उपयोग परियोजना में किसी भी प्रक्रिया में किया जा सकता है। यदि सार्वजनिक चर एक मानक मॉड्यूल या एक वर्ग मॉड्यूल में घोषित किया जाता है, तो इसका उपयोग उन परियोजनाओं में भी किया जा सकता है जो उस परियोजना को संदर्भित करते हैं जहां सार्वजनिक चर घोषित किया जाता है।
-
Private
तरह:Private CounterVariable as Integer
निजी चर का उपयोग केवल उसी मॉड्यूल में प्रक्रियाओं द्वारा किया जा सकता है।
स्रोत और अधिक जानकारी:
अक्षर टाइप करें (विजुअल बेसिक)
विजुअल बेसिक एडिटर खोलना (VBE)
चरण 1: एक कार्यपुस्तिका खोलें
चरण 2 विकल्प A: Alt + F11 दबाएँ
यह VBE खोलने के लिए मानक शॉर्टकट है।
चरण 2 विकल्प बी: डेवलपर टैब -> कोड देखें
सबसे पहले, डेवलपर टैब को रिबन में जोड़ा जाना चाहिए। फाइल पर जाएं -> विकल्प -> रिबन को कस्टमाइज़ करें, फिर डेवलपर के लिए बॉक्स को चेक करें।
फिर, डेवलपर टैब पर जाएं और "दृश्य कोड" या "विज़ुअल बेसिक" पर क्लिक करें
चरण 2 विकल्प सी: टैब देखें> मैक्रोज़> मौजूदा मैक्रो को खोलने के लिए संपादन बटन पर क्लिक करें
इन तीनों विकल्पों में विजुअल बेसिक एडिटर (VBE) खुलेगा:
एक नया ऑब्जेक्ट लाइब्रेरी संदर्भ जोड़ना
प्रक्रिया का वर्णन करता है कि ऑब्जेक्ट लाइब्रेरी संदर्भ कैसे जोड़ा जाए, और बाद में नए लाइब्रेरी क्लास ऑब्जेक्ट के संदर्भ में नए चर कैसे घोषित करें।
नीचे दिए गए उदाहरण से पता चलता है कि मौजूदा VB प्रोजेक्ट में PowerPoint लाइब्रेरी को कैसे जोड़ा जाए। जैसा कि देखा जा सकता है, वर्तमान में पावरपॉइंट ऑब्जेक्ट लाइब्रेरी उपलब्ध नहीं है।
चरण 1 : मेनू टूल चुनें -> संदर्भ ...
चरण 2 : उस संदर्भ का चयन करें जिसे आप जोड़ना चाहते हैं। यह उदाहरण हम " Microsoft PowerPoint 14.0 ऑब्जेक्ट लाइब्रेरी " खोजने के लिए नीचे स्क्रॉल करते हैं, और फिर " ओके " दबाते हैं।
नोट: PowerPoint 14.0 का अर्थ है कि Office 2010 संस्करण पीसी पर स्थापित है।
चरण 3 : वीबी संपादक में, एक बार जब आप Ctrl + Space को एक साथ दबाते हैं, तो आपको PowerPoint का स्वतः पूर्ण विकल्प मिलता है।
PowerPoint
चयन करने और दबाने के बाद .
, पॉवरपॉइंट ऑब्जेक्ट लाइब्रेरी से संबंधित सभी ऑब्जेक्ट विकल्पों के साथ एक और मेनू दिखाई देता है। यह उदाहरण दिखाता है कि PowerPoint के ऑब्जेक्ट Application
का चयन कैसे करें।
चरण 4 : अब उपयोगकर्ता PowerPoint ऑब्जेक्ट लाइब्रेरी का उपयोग करके अधिक चर घोषित कर सकता है।
एक चर घोषित करें जो PowerPoint ऑब्जेक्ट लाइब्रेरी के Presentation
ऑब्जेक्ट को संदर्भित कर रहा है।
एक अन्य चर घोषित करें जो PowerPoint ऑब्जेक्ट लाइब्रेरी के Slide
ऑब्जेक्ट को संदर्भित कर रहा है।
अब नीचे दी गई स्क्रीन-शॉट में वैरिएबल डिक्लेरेशन सेक्शन दिखता है, और उपयोगकर्ता अपने कोड में इन वेरिएबल्स का उपयोग शुरू कर सकता है।
इस ट्यूटोरियल का कोड संस्करण:
Option Explicit
Sub Export_toPPT()
Dim ppApp As PowerPoint.Application
Dim ppPres As PowerPoint.Presentation
Dim ppSlide As PowerPoint.Slide
' here write down everything you want to do with the PowerPoint Class and objects
End Sub
नमस्ते दुनिया
- खोलें दृश्य मूल संपादक (देखें खुलने का दृश्य मूल संपादक )
- नया मॉड्यूल जोड़ने के लिए सम्मिलित करें -> मॉड्यूल पर क्लिक करें:
- नए मॉड्यूल में निम्न कोड को कॉपी और पेस्ट करें:
Sub hello()
MsgBox "Hello World !"
End Sub
प्राप्त करना :
प्रोग्राम चलाने के लिए Visual Basic टूलबार में हरे "प्ले" तीर (या F5 दबाएं) पर क्लिक करें:
हो गया, आपका निम्नलिखित विंडो देखना चाहिए:
एक्सेल ऑब्जेक्ट मॉडल के साथ शुरुआत करना
यह उदाहरण शुरुआती लोगों के लिए एक्सेल ऑब्जेक्ट मॉडल के लिए एक सौम्य परिचय होना चाहता है ।
- विजुअल बेसिक एडिटर (VBE) खोलें
- क्लिक करें देखें -> तत्काल विंडो खोलने के लिए तत्काल विंडो (या ctrl + G ):
- आपको VBE पर नीचे की ओर तत्काल विंडो देखनी चाहिए:
यह विंडो आपको कुछ VBA कोड को सीधे जांचने देती है। तो चलिए शुरू करते हैं, इस कंसोल में टाइप करें:
?Worksheets.
VBE में अंतर्कलह है और फिर इसे निम्न आकृति के अनुसार टूलटिप खोलना चाहिए:
सूची में .Count का चयन करें या सीधे टाइप .Cout
प्राप्त करने के लिए:
?Worksheets.Count
- फिर Enter दबाएं। अभिव्यक्ति का मूल्यांकन किया जाता है और इसे वापस करना चाहिए। यह कार्यपुस्तिका में वर्तमान में मौजूद वर्कशीट की संख्या को इंगित करता है। प्रश्न चिह्न (
?
) डीबग के लिए एक उपनाम है।
वर्कशीट एक ऑब्जेक्ट है और काउंट एक तरीका है । एक्सेल में कई ऑब्जेक्ट ( Workbook
, Worksheet
, Range
, Chart
..) हैं और प्रत्येक में विशिष्ट तरीके और गुण हैं। आप एक्सेल VBA संदर्भ में ऑब्जेक्ट की पूरी सूची पा सकते हैं। वर्कशीट ऑब्जेक्ट यहां प्रस्तुत किया गया है ।
यह एक्सेल VBA संदर्भ एक्सेल ऑब्जेक्ट मॉडल के संबंध में आपकी प्राथमिक जानकारी का स्रोत बनना चाहिए।
- अब हम एक और अभिव्यक्ति की कोशिश, प्रकार (बिना जाने
?
चरित्र):
Worksheets.Add().Name = "StackOveflow"
- एंटर दबाए। यह
StackOverflow.
नामक एक नई कार्यपत्रक बनाना चाहिएStackOverflow.
:
इस अभिव्यक्ति को समझने के लिए आपको उपर्युक्त एक्सेल संदर्भ में ऐड फंक्शन को पढ़ने की आवश्यकता है। आप निम्नलिखित पाएंगे:
Add: Creates a new worksheet, chart, or macro sheet.
The new worksheet becomes the active sheet.
Return Value: An Object value that represents the new worksheet, chart,
or macro sheet.
तो Worksheets.Add()
एक नई वर्कशीट बनाएँ और उसे वापस लौटाएँ। वर्कशीट ( बिना s ) ही एक ऐसी वस्तु है जिसे प्रलेखन में पाया जा सकता है और Name
इसकी संपत्ति में से एक है ( यहाँ देखें)। इसे इस प्रकार परिभाषित किया गया है:
Worksheet.Name Property: Returns or sets a String value that
represents the object name.
इसलिए, विभिन्न वस्तुओं की परिभाषाओं की जांच करके हम इस कोड Worksheets.Add().Name = "StackOveflow"
को समझने में सक्षम हैं Worksheets.Add().Name = "StackOveflow"
।
Add()
एक नई वर्कशीट बनाएं और जोड़ें और इसके लिए एक संदर्भ लौटाएं, फिर हमने "स्टैकऑफफ़्लो" के लिए इसकी नाम संपत्ति सेट की
अब चलो अधिक औपचारिक हो, एक्सेल में कई ऑब्जेक्ट शामिल हैं। ये ऑब्जेक्ट एक ही वर्ग के एक्सेल ऑब्जेक्ट्स के एक या कई संग्रह से बना हो सकते हैं। यह Worksheet
लिए WorkSheets
जो Worksheet
ऑब्जेक्ट का संग्रह है। प्रत्येक ऑब्जेक्ट में कुछ गुण और विधियाँ होती हैं जिनसे प्रोग्रामर बातचीत कर सकता है।
एक्सेल ऑब्जेक्ट मॉडल एक्सेल ऑब्जेक्ट पदानुक्रम को संदर्भित करता है
सभी ऑब्जेक्ट्स के शीर्ष पर Application
ऑब्जेक्ट है, यह स्वयं एक्सेल उदाहरण का प्रतिनिधित्व करता है। VBA में प्रोग्रामिंग करने से इस पदानुक्रम की अच्छी समझ की आवश्यकता होती है क्योंकि हमें हमेशा किसी ऑब्जेक्ट के लिए एक विधि को कॉल करने में सक्षम होना चाहिए या एक संपत्ति सेट / प्राप्त करने में सक्षम होना चाहिए।
(बहुत सरलीकृत) एक्सेल ऑब्जेक्ट मॉडल के रूप में प्रतिनिधित्व किया जा सकता है,
Application
Workbooks
Workbook
Worksheets
Worksheet
Range
वर्कशीट ऑब्जेक्ट (जैसा कि एक्सेल 2007 में है) के लिए एक अधिक विवरण संस्करण नीचे दिखाया गया है,
अंत में कुछ ऑब्जेक्ट में events
हो सकते हैं (उदा: Workbook.WindowActivate
) जो एक्सेल ऑब्जेक्ट मॉडल का भी हिस्सा हैं।