दोनों के बीच क्या अंतर है। मैंने हमेशा सोचा था कि VBA कुछ हद तक VB का 'अपंग' संस्करण है, लेकिन जब दूसरे दिन एक मित्र ने मुझसे पूछा कि मुझे नहीं पता कि वास्तविक अंतर क्या हैं।
इसके अलावा, जब आप उपयोग करते हैं, उदाहरण के लिए, एक्सेल, वह VB या VBA है?
दोनों के बीच क्या अंतर है। मैंने हमेशा सोचा था कि VBA कुछ हद तक VB का 'अपंग' संस्करण है, लेकिन जब दूसरे दिन एक मित्र ने मुझसे पूछा कि मुझे नहीं पता कि वास्तविक अंतर क्या हैं।
इसके अलावा, जब आप उपयोग करते हैं, उदाहरण के लिए, एक्सेल, वह VB या VBA है?
जवाबों:
लगभग सभी प्रोग्रामिंग उद्देश्यों के लिए, VBA और VB 6.0 एक ही बात है।
VBA आपके प्रोग्राम को एक निष्पादन योग्य बाइनरी में संकलित नहीं कर सकता है। आपको अपनी परियोजना को शामिल करने और निष्पादित करने के लिए हमेशा मेजबान (एक वर्ड फ़ाइल और उदाहरण के लिए एमएस वर्ड) की आवश्यकता होगी। आप VBA के साथ COM DLL भी नहीं बना पाएंगे।
इसके अलावा, IDE में अंतर है - VB 6.0 IDE तुलना में अधिक शक्तिशाली है। दूसरी ओर, आपके पास VBA में होस्ट एप्लिकेशन का तंग एकीकरण है। अनुप्रयोग-वैश्विक ऑब्जेक्ट (जैसे "ActiveDocument") और ईवेंट घोषणा के बिना उपलब्ध हैं, इसलिए एप्लिकेशन-विशिष्ट प्रोग्रामिंग सीधे-आगे है।
फिर भी, कुछ भी नहीं है आप वर्ड फायरिंग से, VBA IDE लोड करना और एक समस्या को हल करना, जिसका वर्ड से कोई संबंध नहीं है। मुझे यकीन नहीं है कि अगर ऐसा कुछ है जो VB 6.0 (तकनीकी रूप से) कर सकता है, और VBA नहीं कर सकता। मैं MSDN पर एक तुलना पत्रक के लिए देख रहा हूँ, हालांकि।
VBA अनुप्रयोगों के लिए Visual Basic के लिए खड़ा है और इसलिए "VB के स्क्रिप्टिंग भाई" अनुप्रयोगों के लिए छोटा है। VBA एक्सेल में वास्तव में उपलब्ध है, लेकिन अन्य कार्यालय अनुप्रयोगों में भी।
वीबी के साथ, एक स्टैंड-अलोन विंडोज़ एप्लिकेशन बना सकता है, जो वीबीए के साथ संभव नहीं है।
हालांकि डेवलपर्स के लिए अपने स्वयं के अनुप्रयोगों में VBA को "एम्बेड" करना संभव है, उन अनुप्रयोगों को स्वचालित करने के लिए एक स्क्रिप्टिंग भाषा के रूप में।
संपादित करें : से VBA पूछे जाने वाले प्रश्न :
Q. अनुप्रयोगों के लिए विजुअल बेसिक क्या है?
ए। माइक्रोसॉफ्ट विजुअल बेसिक फॉर एप्लीकेशन (VBA) एक एम्बेड करने योग्य प्रोग्रामिंग वातावरण है जो डेवलपर्स को Microsoft Visual Basic की पूरी शक्ति का उपयोग करके कस्टम समाधान बनाने में सक्षम बनाता है। VBA की मेजबानी करने वाले अनुप्रयोगों का उपयोग करने वाले डेवलपर्स कस्टम व्यवसाय समाधानों के विकास चक्र को छोटा करते हुए, अनुप्रयोग कार्यक्षमता को स्वचालित और विस्तारित कर सकते हैं।
ध्यान दें कि VB.NET और भी दूसरी भाषा है, जो केवल VB के साथ सिंटैक्स साझा करती है।
यहाँ एक पुराने प्रश्न का अधिक तकनीकी और गहन उत्तर दिया गया है: Visual Basic for Applications (VBA) और Visual Basic (pre-.NET) केवल समान भाषा नहीं हैं, वे एक ही भाषा हैं। विशेष रूप से:
पिछले साल आई एक पुरानी VB संदर्भ पुस्तक में , लेखक (पॉल लोमैक्स) ने यहां तक कहा कि 'VBA' हमेशा से ही भाषा का नाम रहा है, चाहे वह स्टैंड-अलोन अनुप्रयोगों में या एम्बेडेड संदर्भों में उपयोग की गई हो (जैसे कि MS Office) ):
"इससे पहले कि हम आगे बढ़ते हैं, चलो बस मूल बिंदु पर स्पष्ट करते हैं। विज़ुअल बेसिक फॉर एप्लिकेशन (वीबीए) विजुअल बेसिक (वीबी) में प्रोग्राम करने के लिए इस्तेमाल की जाने वाली भाषा है। वीबी खुद एक विकास वातावरण है; उस वातावरण का भाषा तत्व वीबीए है। "
मामूली अंतर
होस्टेड बनाम स्टैंड-अलोन : व्यावहारिक रूप में, जब लोग "वीबीए" कहते हैं, तो वे विशेष रूप से "एमएस ऑफिस में उपयोग किए जाने वाले वीबीए" का अर्थ करते हैं, और वे "वीबी 6" का मतलब "वीबीए" स्टैंडअलोन डीबीए के अंतिम संस्करण में करते हैं। संकलक (यानी विज़ुअल स्टूडियो 6) "। MS Office के साथ बंडल किया गया IDE और कंपाइलर लगभग Visual Studio 6 के समान है, इस सीमा के साथ कि यह संकलन को अकेले dll या exe फ़ाइलों की अनुमति नहीं देता है। यह बदले में इसका मतलब है कि एम्बेडेड VBA परियोजनाओं में परिभाषित वर्ग गैर-एम्बेडेड COM उपभोक्ताओं से सुलभ नहीं हैं, क्योंकि वे पंजीकृत नहीं हो सकते हैं।
निरंतर विकास : Microsoft ने Visual Studio 6 के साथ एक स्टैंड-अलोन VBA कंपाइलर का उत्पादन बंद कर दिया, क्योंकि उन्होंने पसंद के प्लेटफॉर्म के रूप में .NET रनटाइम पर स्विच किया। हालाँकि, MS Office की टीम VBA को बनाए रखना जारी रखती है, और यहाँ तक कि एक नया VM (VBA7) भी नए VM (जिसे अभी VBA7.dll कहा जाता है) के साथ MS Office 2010 से शुरू किया गया है। केवल प्रमुख अंतर यह है कि VBA7 में दोनों एक 32- हैं और 64-बिट संस्करण और दोनों के बीच के अंतर को संभालने के लिए कुछ संवर्द्धन हैं, विशेष रूप से बाहरी एपीआई इनवोकेशन के संबंध में।
क्या आप VB-Classic (VB6 ..) या VB.NET के साथ VBA की तुलना करना चाहते हैं?
VBA (Visual Basic for Applications) Microsoft Office अनुप्रयोगों में एम्बेडेड vb- क्लासिक-आधारित स्क्रिप्ट भाषा है। मुझे लगता है कि यह भाषा की विशेषताएं VB5 के समान हैं (यह सिर्फ कुछ अंतर्निहित कार्यों का अभाव है), लेकिन:
आपके पास उस कार्यालय दस्तावेज़ तक पहुंच है, जिसके लिए आपने VBA-script लिखा है और इसलिए आप उदा
उदाहरण: एक्सेल-सेल का मान सेट करें
ActiveSheet.Cells("A1").Value = "Foo"
VBC और .NET कोई स्क्रिप्ट भाषा नहीं हैं। आप उन्हें अलग-अलग आईडीई के साथ स्टैंडअलोन-एप्लिकेशन लिखने के लिए उपयोग करते हैं, जो आप VBA (VBA- स्क्रिप्ट सिर्फ ऑफिस में "मौजूद" के साथ नहीं कर सकते हैं)
VBA का VB.NET से कोई लेना-देना नहीं है (उनके पास एक समान सिंटैक्स है)।
वास्तव में VBA का उपयोग DLL को संकलित करने के लिए किया जा सकता है। Office 2000 और Office XP डेवलपर संस्करणों में एक VBA संपादक शामिल होता है, जिसका उपयोग COM एडिंस के रूप में उपयोग के लिए DLL बनाने के लिए किया जा सकता है।
इस कार्यक्षमता को बाद के संस्करणों (2003 और 2007) में VSTO (ऑफिस के लिए वीएस टूल) सॉफ्टवेयर के आगमन के साथ हटा दिया गया था, हालांकि जाहिर है कि आप अभी भी वीएसओ (या VS.Net) के उपयोग के बिना इसी तरह से COM एडिन बना सकते हैं। VB6 IDE का उपयोग करना।
यह VBA है। VBA का अर्थ है Visual Basic for Applications , और इसका उपयोग Office दस्तावेज़ों पर मैक्रोज़ के लिए किया जाता है। इसमें VB.NET सुविधाओं तक पहुंच नहीं है, इसलिए यह VB6 के संशोधित संस्करण की तरह है, ऐड-ऑन के साथ दस्तावेज़ पर काम करने में सक्षम होने के लिए (जैसे एक्सेल के लिए VBA में वर्कशीट)।
VB एक भाषा नहीं है । VB एक प्रोग्राम है जो VBA को होस्ट करता है, जैसे ऑफिस होस्ट VBA को होस्ट करता है। VB ऐप ऑब्जेक्ट्स का एक सेट है, जैसे वर्ड और एक्सेल में है, और ऑफिस की तरह ही एक फॉर्म पैकेज है।
तो आप केवल VB में VBA कोड लिख सकते हैं।
PS यह जानकारी VB के लिए VB प्रश्न पृष्ठ पर INFO टैब पर है ।
VBA जानकारी से
VBA 6, को 1998 में शिप किया गया था और इनमें लाइसेंस प्राप्त मेजबानों का एक समूह शामिल है: उनमें से Office 2000 - 2010, ऑटोकैड, PI प्रोसेसबुक और स्टैंड-अलोन विज़ुअल बेसिक 6.0
वीबी (केवल 6.0 तक विजुअल बेसिक) वीबीए (अनुप्रयोगों के लिए विजुअल बेसिक) का सुपरसेट है। मुझे पता है कि अन्य लोगों ने इसे खारिज कर दिया है, लेकिन मेरी समझ यह है कि वीबीए का शब्दार्थ (यानी शब्दावली) VB6 (कार्यालय उत्पादों के लिए विशिष्ट वस्तुओं को छोड़कर) में शामिल है, इसलिए, VBA VB6 का सबसेट है। वाक्यविन्यास (अर्थात वह क्रम जिसमें शब्द लिखे गए हैं) VBA में बिल्कुल वैसा ही है जैसा कि VB6 में होगा, लेकिन अंतर यह है कि VBA या VB6 के लिए उपलब्ध वस्तुएं भिन्न हैं क्योंकि उनके अलग-अलग उद्देश्य हैं। विशेष रूप से VBA का उद्देश्य प्रोग्राम को MS Office में किया जा सकता है, जबकि VB6 का उद्देश्य मानक EXE, ActiveX नियंत्रण, ActiveX DLL और ActiveX EXE बनाना है जो या तो MS Office या Windows जैसे अन्य कार्यक्रमों में काम कर सकते हैं।