खोज…


टिप्पणियों

Microsoft Excel में VBA नामक एक व्यापक मैक्रो प्रोग्रामिंग भाषा शामिल है। यह प्रोग्रामिंग भाषा आपको कम से कम तीन अतिरिक्त संसाधन प्रदान करती है:

  1. मैक्रोज़ का उपयोग करके कोड से एक्सेल को स्वचालित रूप से ड्राइव करें। अधिकांश भाग के लिए, उपयोगकर्ता इंटरफ़ेस से एक्सेल में हेरफेर करके उपयोगकर्ता जो कुछ भी कर सकता है वह एक्सेल VBA में कोड लिखकर किया जा सकता है।
  2. नई, कस्टम वर्कशीट फ़ंक्शन बनाएं।
  3. 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

निजी चर का उपयोग केवल उसी मॉड्यूल में प्रक्रियाओं द्वारा किया जा सकता है।

स्रोत और अधिक जानकारी:

MSDN- घोषणा चर

अक्षर टाइप करें (विजुअल बेसिक)

विजुअल बेसिक एडिटर खोलना (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

नमस्ते दुनिया

  1. खोलें दृश्य मूल संपादक (देखें खुलने का दृश्य मूल संपादक )
  2. नया मॉड्यूल जोड़ने के लिए सम्मिलित करें -> मॉड्यूल पर क्लिक करें:

यहाँ छवि विवरण दर्ज करें

  1. नए मॉड्यूल में निम्न कोड को कॉपी और पेस्ट करें:
  Sub hello()
    MsgBox "Hello World !"
  End Sub

प्राप्त करना :

यहाँ छवि विवरण दर्ज करें

  1. प्रोग्राम चलाने के लिए Visual Basic टूलबार में हरे "प्ले" तीर (या F5 दबाएं) पर क्लिक करें: यहाँ छवि विवरण दर्ज करें

  2. नए बनाए गए उप "हैलो" का चयन करें और Run क्लिक करें: यहाँ छवि विवरण दर्ज करें

  3. हो गया, आपका निम्नलिखित विंडो देखना चाहिए:

यहाँ छवि विवरण दर्ज करें

एक्सेल ऑब्जेक्ट मॉडल के साथ शुरुआत करना

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


  1. विजुअल बेसिक एडिटर (VBE) खोलें
  2. क्लिक करें देखें -> तत्काल विंडो खोलने के लिए तत्काल विंडो (या ctrl + G ):

यहाँ छवि विवरण दर्ज करें

  1. आपको VBE पर नीचे की ओर तत्काल विंडो देखनी चाहिए:

यहाँ छवि विवरण दर्ज करें

यह विंडो आपको कुछ VBA कोड को सीधे जांचने देती है। तो चलिए शुरू करते हैं, इस कंसोल में टाइप करें:

?Worksheets. 

VBE में अंतर्कलह है और फिर इसे निम्न आकृति के अनुसार टूलटिप खोलना चाहिए:

यहाँ छवि विवरण दर्ज करें

सूची में .Count का चयन करें या सीधे टाइप .Cout प्राप्त करने के लिए:

?Worksheets.Count
  1. फिर Enter दबाएं। अभिव्यक्ति का मूल्यांकन किया जाता है और इसे वापस करना चाहिए। यह कार्यपुस्तिका में वर्तमान में मौजूद वर्कशीट की संख्या को इंगित करता है। प्रश्न चिह्न ( ? ) डीबग के लिए एक उपनाम है।

वर्कशीट एक ऑब्जेक्ट है और काउंट एक तरीका है । एक्सेल में कई ऑब्जेक्ट ( Workbook , Worksheet , Range , Chart ..) हैं और प्रत्येक में विशिष्ट तरीके और गुण हैं। आप एक्सेल VBA संदर्भ में ऑब्जेक्ट की पूरी सूची पा सकते हैं। वर्कशीट ऑब्जेक्ट यहां प्रस्तुत किया गया है

यह एक्सेल VBA संदर्भ एक्सेल ऑब्जेक्ट मॉडल के संबंध में आपकी प्राथमिक जानकारी का स्रोत बनना चाहिए।

  1. अब हम एक और अभिव्यक्ति की कोशिश, प्रकार (बिना जाने ? चरित्र):
Worksheets.Add().Name = "StackOveflow"
  1. एंटर दबाए। यह 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 ) जो एक्सेल ऑब्जेक्ट मॉडल का भी हिस्सा हैं।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow