जानकारी

Word 2007 के साथ VBA मैक्रो कोडिंग सीखें

Word 2007 के साथ VBA मैक्रो कोडिंग सीखें

इस पाठ्यक्रम का लक्ष्य ऐसे लोगों की मदद करना है जिन्होंने एक लिखना सीखने से पहले कभी कोई कार्यक्रम नहीं लिखा है। ऐसा कोई कारण नहीं है कि कार्यालय कार्यकर्ता, गृहिणी, पेशेवर इंजीनियर और पिज्जा डिलीवरी वाले व्यक्ति तेजी से और स्मार्ट तरीके से काम करने के लिए अपने स्वयं के हाथ से तैयार किए गए कस्टम कंप्यूटर प्रोग्रामों का लाभ उठाने में सक्षम न हों। यह काम करने के लिए 'पेशेवर प्रोग्रामर' (जो भी हो) नहीं लेना चाहिए। आप जानते हैं कि किसी और से बेहतर होने की क्या जरूरत है। आपके द्वारा इसे स्वयं ही किया जा सकता है!

(और मैं इसे किसी ऐसे व्यक्ति के रूप में कहता हूं जिसने कई वर्षों तक अन्य लोगों के लिए कार्यक्रम लिखने में बिताया है ... 'पेशेवर'।)

उस के साथ कहा, यह कंप्यूटर का उपयोग करने के तरीके में एक कोर्स नहीं है।

यह पाठ्यक्रम मानता है कि आप जानते हैं कि लोकप्रिय सॉफ़्टवेयर का उपयोग कैसे किया जाता है और विशेष रूप से, आपके कंप्यूटर पर Microsoft Word 2007 स्थापित है। आपको मूल कंप्यूटर कौशल पता होना चाहिए जैसे कि फ़ाइल फ़ोल्डर (यानी, निर्देशिका) कैसे बनाएं और फ़ाइलों को कैसे स्थानांतरित करें और कॉपी करें। लेकिन अगर आपने हमेशा सोचा है कि वास्तव में एक कंप्यूटर प्रोग्राम क्या था, तो यह ठीक है। हम आपको दिखाएंगे।

Microsoft Office सस्ता नहीं है। लेकिन आप उस महंगे सॉफ्टवेयर से अधिक मूल्य प्राप्त कर सकते हैं जो आपने पहले ही स्थापित किया है। यह एक बड़ा कारण है कि हम Microsoft Office के साथ Visual Basic का उपयोग अनुप्रयोगों, या VBA के लिए करते हैं। लाखों हैं जिनके पास यह है और एक मुट्ठी भर (शायद कोई भी नहीं) जो सब कुछ का उपयोग करता है वह कर सकता है।

इससे पहले कि हम आगे बढ़ें, हालांकि, मुझे वीबीए के बारे में एक और बात समझाने की जरूरत है। फरवरी 2002 में, Microsoft ने अपनी पूरी कंपनी के लिए पूरी तरह से नई तकनीक के आधार पर 300 बिलियन डॉलर का दांव लगाया। उन्होंने इसे .NET कहा। तब से, Microsoft अपने पूरे प्रौद्योगिकी आधार को VB.NET में स्थानांतरित कर रहा है। VBA बहुत अंतिम प्रोग्रामिंग टूल है जो अभी भी VB6 का उपयोग करता है, कोशिश की गई और सही तकनीक जो VB.NET से पहले इस्तेमाल की गई थी। (आप इस VB6 स्तर की तकनीक का वर्णन करने के लिए "COM आधारित" वाक्यांश देखेंगे।)

VSTO और VBA

Microsoft ने Office 2007 के लिए VB.NET प्रोग्राम लिखने का एक तरीका बनाया है। इसे Visual Studio Tools for Office (VSTO) कहा जाता है। वीएसटीओ के साथ समस्या यह है कि आपको विजुअल स्टूडियो प्रोफेशनल का उपयोग करने के लिए खरीदना और सीखना है। Excel स्वयं अभी भी COM आधारित है और .NET प्रोग्राम को इंटरफ़ेस (PIA, प्राथमिक इंटरोप असेंबली) कहा जाता है।

इसलिए… जब तक कि Microsoft अपने कार्य को एक साथ नहीं करता है और आपको प्रोग्राम लिखने का एक तरीका देता है जो वर्ड के साथ काम करेगा और आपको आईटी विभाग में शामिल नहीं करेगा, VBA मैक्रोज़ अभी भी जाने का रास्ता है।

वीबीए का उपयोग करने का एक और कारण यह है कि यह वास्तव में एक 'पूरी तरह से पके हुए' (आधा पके हुए नहीं) सॉफ्टवेयर विकास वातावरण है जो प्रोग्रामर द्वारा अस्तित्व में सबसे परिष्कृत प्रणालियों में से कुछ बनाने के लिए वर्षों से उपयोग किया जाता है। इससे कोई फर्क नहीं पड़ता कि आपकी प्रोग्रामिंग जगहें कितनी ऊंची हैं। Visual Basic में आपको वहां ले जाने की शक्ति है।

स्थूल क्या है?

आपने डेस्कटॉप एप्लिकेशन का उपयोग किया हो सकता है जो पहले मैक्रो भाषा में कहा जाता है का समर्थन करता है। मैक्रों पारंपरिक रूप से सिर्फ एक नाम के साथ समूहबद्ध कीबोर्ड क्रियाओं की स्क्रिप्ट हैं ताकि आप उन सभी को एक साथ निष्पादित कर सकें। यदि आप हमेशा अपने "MyDiary" दस्तावेज़ को खोलकर, आज की तारीख दर्ज करके, और "प्रिय डायरी," शब्द लिखकर दिन की शुरुआत करते हैं - तो अपने कंप्यूटर को आपके लिए ऐसा क्यों नहीं करने देते? अन्य सॉफ़्टवेयर के अनुरूप होने के लिए, Microsoft VBA को एक मैक्रो भाषा भी कहता है। लेकिन ऐसा नहीं है। यह बहुत अधिक है।

कई डेस्कटॉप एप्लिकेशन में एक सॉफ्टवेयर टूल शामिल है जो आपको "कीस्ट्रोक" मैक्रो रिकॉर्ड करने देगा। Microsoft अनुप्रयोगों में, इस उपकरण को मैक्रो रिकॉर्डर कहा जाता है, लेकिन परिणाम पारंपरिक कीस्ट्रोक मैक्रो नहीं है। यह एक VBA प्रोग्राम है और अंतर यह है कि यह केवल कीस्ट्रोक्स को रिप्ले नहीं करता है। एक VBA प्रोग्राम आपको यदि संभव हो तो समान अंतिम परिणाम देता है, लेकिन आप VBA में परिष्कृत सिस्टम भी लिख सकते हैं जो साधारण कीबोर्ड मैक्रोज़ को धूल में छोड़ देते हैं। उदाहरण के लिए, आप VBA का उपयोग करके Word में एक्सेल फ़ंक्शन का उपयोग कर सकते हैं। और आप VBA को अन्य सिस्टम जैसे डेटाबेस, वेब या अन्य सॉफ्टवेयर एप्लिकेशन के साथ एकीकृत कर सकते हैं।

यद्यपि साधारण कीबोर्ड मैक्रोज़ बनाने के लिए VBA मैक्रो रिकॉर्डर बहुत उपयोगी है, प्रोग्रामर ने पता लगाया है कि यह और भी अधिक परिष्कृत कार्यक्रमों में उन्हें रनिंग स्टार्ट देने के लिए और भी उपयोगी है। यही हम करने जा रहे हैं।

प्रारंभ माइक्रोसॉफ्ट वर्ड 2007 एक रिक्त दस्तावेज़ के साथ और एक कार्यक्रम लिखने के लिए तैयार हो जाओ।

वर्ड में डेवलपर टैब

Word 2007 में Visual Basic प्रोग्राम लिखने के लिए सबसे पहले आपको जो कुछ करना है, वह है Visual Basic खोजें! Word 2007 में डिफ़ॉल्ट उपयोग किया गया रिबन प्रदर्शित नहीं करना है। को जोड़ने के लिए डेवलपर टैब, पहले क्लिक करें कार्यालय बटन (ऊपरी बाएँ कोने में लोगो) और फिर क्लिक करें शब्द विकल्प। क्लिक करें रिबन में डेवलपर टैब दिखाएं और फिर क्लिक करें ठीक है.

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

क्लिक करें रिकॉर्ड मैक्रो। अपने मैक्रो का नाम दें: AboutVB1 उस नाम को टाइप करके मैक्रो नाम पाठ बॉक्स। अपने मैक्रो को संग्रहीत करने के लिए स्थान के रूप में अपने वर्तमान दस्तावेज़ का चयन करें और ठीक पर क्लिक करें। नीचे उदाहरण देखें।

(नोट: यदि आप चुनते हैं सभी दस्तावेज (Normal.dotm) ड्रॉप डाउन मेनू से, यह परीक्षण VBA प्रोग्राम, वास्तव में वर्ड का एक हिस्सा बन जाएगा क्योंकि यह तब आपके द्वारा वर्ड में बनाए गए प्रत्येक दस्तावेज़ के लिए उपलब्ध हो जाएगा। यदि आप किसी विशिष्ट दस्तावेज़ में केवल VBA मैक्रो का उपयोग करना चाहते हैं, या यदि आप इसे किसी और को भेजना चाहते हैं, तो दस्तावेज़ के भाग के रूप में मैक्रो को सहेजना बेहतर होगा। Normal.dotm डिफ़ॉल्ट है इसलिए आपको इसे बदलना होगा।)

मैक्रो रिकॉर्डर चालू होने पर, "हैलो वर्ल्ड" टेक्स्ट टाइप करें। अपने वर्ड डॉक्यूमेंट में। (माउस पॉइंटर टेप की कारतूस की एक छोटी तस्वीर में बदल जाएगा ताकि यह दिखाया जा सके कि कीस्ट्रोक रिकॉर्ड किए जा रहे हैं।)

(नोट: हैलो वर्ल्ड लगभग "फर्स्ट प्रोग्राम" के लिए आवश्यक है क्योंकि शुरुआती कंप्यूटर भाषा "सी" के लिए बहुत पहले प्रोग्रामिंग मैनुअल ने इसका इस्तेमाल किया था। यह अब तक की परंपरा रही है।)

क्लिक करें रिकॉर्डिंग बंद करें। Word बंद करें और नाम का उपयोग करके दस्तावेज़ सहेजें: AboutVB1.docm। आपको a सेलेक्ट करना है शब्द मैक्रो-सक्षम दस्तावेज़ वहाँ से टाइप के रुप में सहेजें ड्रॉप डाउन।

बस! अब आपने वर्ड VBA प्रोग्राम लिखा है। आइए देखें कि यह कैसा दिखता है!

एक VBA कार्यक्रम क्या है, इसे समझना

यदि आपने Word बंद कर दिया है, तो उसे फिर से खोलें और चुनें AboutVB1.docm फ़ाइल जिसे आपने पिछले पाठ में सहेजा है। यदि सब कुछ सही ढंग से किया गया था, तो आपको सुरक्षा चेतावनी के साथ अपने दस्तावेज़ विंडो के शीर्ष पर एक बैनर देखना चाहिए।

VBA और सुरक्षा

VBA एक वास्तविक प्रोग्रामिंग भाषा है। इसका मतलब है कि वीबीए आपको केवल कुछ भी करने की आवश्यकता है जो आपको करने की आवश्यकता है। और इसके बदले में, इसका मतलब है कि यदि आप किसी 'बुरे आदमी' से एम्बेडेड मैक्रो के साथ एक वर्ड डॉक्यूमेंट प्राप्त करते हैं जो मैक्रो सिर्फ कुछ के बारे में भी कर सकता है। इसलिए Microsoft की चेतावनी को गंभीरता से लिया जाना चाहिए। दूसरी ओर, आप इस मैक्रो को लिखा है और यह सब "हेलो वर्ल्ड" टाइप है, इसलिए यहां कोई जोखिम नहीं है। मैक्रो को सक्षम करने के लिए बटन पर क्लिक करें।

यह देखने के लिए कि मैक्रो रिकॉर्डर ने क्या बनाया है (साथ ही साथ VBA को शामिल करने वाली अधिकांश अन्य चीजें करने के लिए), आपको Visual Basic Editor शुरू करने की आवश्यकता है। डेवलपर रिबन के बाईं ओर ऐसा करने के लिए एक आइकन है।

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

जब मैक्रो रिकॉर्डर शुरू किया गया था, तो आपके पास एक विकल्प था साधारण टेम्पलेट या वर्तमान दस्तावेज़ आपके मैक्रो के लिए एक स्थान के रूप में। यदि आपने सामान्य चुना है, तो NewMacros मॉड्यूल का हिस्सा होगा साधारण प्रोजेक्ट एक्सप्लोरर डिस्प्ले की शाखा। (आप वर्तमान दस्तावेज़ का चयन करने वाले थे। यदि आपने चयन किया था साधारण, दस्तावेज़ को हटाएं और पिछले निर्देशों को दोहराएं।) का चयन करें NewMacros के अंतर्गत मॉड्यूल अपनी वर्तमान परियोजना में। यदि अभी भी कोई कोड विंडो प्रदर्शित नहीं हुई है, तो क्लिक करें कोड के नीचे राय मेन्यू।

शब्द दस्तावेज़ VBA कंटेनर के रूप में

हर विज़ुअल बेसिक प्रोग्राम किसी न किसी तरह के फ़ाइल 'कंटेनर' में होना चाहिए। Word 2007 VBA मैक्रोज़ के मामले में, वह कंटेनर एक '(.docm') वर्ड डॉक्यूमेंट है। वर्ड वीबीए प्रोग्राम वर्ड के बिना नहीं चल सकता है और आप स्टैंडअलोन ('.exe') विज़ुअल बेसिक प्रोग्राम नहीं बना सकते हैं जैसे आप विज़ुअल बेसिक 6 या विज़ुअल बेसिक .NET के साथ कर सकते हैं। लेकिन फिर भी आप पूरी दुनिया को छोड़ सकते हैं।

आपका पहला कार्यक्रम निश्चित रूप से छोटा और मीठा है, लेकिन यह VBA और विज़ुअल बेसिक एडिटर की प्रमुख विशेषताओं को पेश करने का काम करेगा।

कार्यक्रम स्रोत सामान्य रूप से सबरूटीन्स की एक श्रृंखला से मिलकर बनेगा। जब आप अधिक उन्नत प्रोग्रामिंग में स्नातक होते हैं, तो आपको पता चलेगा कि अन्य चीजें सबरूटीन्स के अलावा कार्यक्रम का हिस्सा हो सकती हैं।

इस विशेष सबरूटीन का नाम दिया गया है AboutVB1। सबरूटीन हेडर को a के साथ जोड़ा जाना चाहिए अंत उप तल पर। कोष्ठक एक मानदंड सूची पकड़ सकता है जिसमें मानों को सबरूटीन में पारित किया जा सकता है। यहां कुछ भी पारित नहीं किया जा रहा है, लेकिन उन्हें वहां रहना होगा उप वैसे भी बयान। बाद में, जब हम मैक्रो चलाते हैं, तो हम नाम की तलाश करेंगेAboutVB1.

सबरूटीन में केवल एक वास्तविक प्रोग्राम स्टेटमेंट है:

चयन। टाइप टेक्स्ट: = "हैलो वर्ल्ड!"

वस्तुओं, विधियों और गुणों

इस कथन में तीन प्रमुख हैं:

  • एक वस्तु
  • एक विधी
  • सम्पत्ति

बयान वास्तव में "हैलो वर्ल्ड" पाठ जोड़ता है। वर्तमान दस्तावेज़ की सामग्री के लिए।

अगला कार्य हमारे कार्यक्रम को कुछ समय चलाना है। कार खरीदना पसंद है, इसे तब तक के लिए थोड़ी देर के लिए चलाना अच्छा होता है जब तक कि यह थोड़ा आरामदायक न लगे। हम इसके बाद करते हैं।

कार्यक्रम और दस्तावेज

हमारे पास हमारी शानदार और जटिल प्रणाली है ... जिसमें एक प्रोग्राम स्टेटमेंट शामिल है ... लेकिन अब हम इसे चलाना चाहते हैं। यहाँ है कि सभी के बारे में क्या है।

यहां एक अवधारणा सीखी जानी है जो बहुत महत्वपूर्ण है और यह अक्सर पहले टाइमर को भ्रमित करती है: के बीच का अंतर कार्यक्रम और यह दस्तावेज़। यह अवधारणा मूलभूत है।

VBA प्रोग्राम को एक होस्ट फ़ाइल में समाहित करना होता है। वर्ड में, होस्ट दस्तावेज़ है। हमारे उदाहरण में, वह है AboutVB1.docm। कार्यक्रम वास्तव में दस्तावेज़ के अंदर सहेजा गया है।

उदाहरण के लिए, यदि यह एक्सेल था, तो हम इसके बारे में बात करेंगे कार्यक्रम और यह स्प्रेडशीट। पहुँच में, द कार्यक्रम और यह डेटाबेस। स्टैंडअलोन विजुअल बेसिक विंडोज एप्लीकेशन में भी, हम ए कार्यक्रम और एक प्रपत्र.

(नोट: सभी उच्च स्तरीय कंटेनरों को "दस्तावेज़" के रूप में संदर्भित करने के लिए प्रोग्रामिंग में एक प्रवृत्ति है। यह विशेष रूप से तब होता है जब XML ... एक और अप और आने वाली तकनीक ... का उपयोग किया जा रहा है। इसे आपको भ्रमित न करने दें। थोड़ी सी अशुद्धि, आप "दस्तावेजों" के बारे में सोच सकते हैं जो लगभग "फाइलों" के समान है।)

आपके VBA मैक्रो को चलाने के तीन मुख्य तरीकों के बारे में ummmmm ... हैं।

  1. आप इसे Word दस्तावेज़ से चला सकते हैं।
    (नोट: दो उपश्रेणी उपकरण मेनू से मैक्रोज़ का चयन करने के लिए हैं या बस Alt-F8 दबाएं। यदि आपने मैक्रो को टूलबार या कीबोर्ड शॉर्टकट के लिए असाइन किया है, तो यह एक और तरीका है।)
  2. आप इसे रन आइकन या रन मेनू का उपयोग करके संपादक से चला सकते हैं।
  3. आप डिबग मोड में प्रोग्राम के माध्यम से एकल-चरण कर सकते हैं।

आपको वर्ड / वीबीए इंटरफ़ेस के साथ सहज बनने के लिए इन तरीकों में से हर एक को आज़माना चाहिए। जब आप समाप्त कर लेंगे, तो आपके पास "हैलो वर्ल्ड" के दोहराव से भरा एक पूरा दस्तावेज होगा!

वर्ड से प्रोग्राम चलाना काफी आसान है। बस क्लिक करने के बाद मैक्रो का चयन करें मैक्रो के तहत आइकन राय टैब।

संपादक से इसे चलाने के लिए, पहले विजुअल बेसिक एडिटर खोलें और फिर रन आइकन पर क्लिक करें या मेनू से रन चुनें। यहां दस्तावेज़ और प्रोग्राम के बीच अंतर कुछ के लिए भ्रामक हो सकता है। यदि आपके पास दस्तावेज कम से कम है या शायद आपकी खिड़कियां व्यवस्थित हैं, तो संपादक इसे कवर कर रहा है, आप रन आइकन पर क्लिक कर सकते हैं और कुछ भी नहीं हो रहा है। लेकिन कार्यक्रम चल रहा है! दस्तावेज़ पर फिर से स्विच करें और देखें।

कार्यक्रम के माध्यम से सिंगल स्टेपिंग संभवतः सबसे उपयोगी समस्या निवारण तकनीक है। यह Visual Basic संपादक से भी किया जाता है। इसे आज़माने के लिए, दबाएँ F8 या चयन करें में कदम वहाँ से डिबग मेन्यू। कार्यक्रम में पहला बयान, कार्यक्रम उप बयान पर प्रकाश डाला गया है। F8 को दबाने से प्रोग्राम स्टेटमेंट्स को एक समय में तब तक निष्पादित किया जाता है जब तक प्रोग्राम समाप्त नहीं हो जाता। जब आप पाठ को दस्तावेज़ में इस तरह से जोड़ते हैं तो आप वास्तव में देख सकते हैं।

'ब्रेकप्वाइंट', 'तत्काल विंडो' में प्रोग्राम ऑब्जेक्ट्स की जांच करने और 'वॉच विंडो' के उपयोग जैसी कई अधिक परिष्कृत डिबगिंग तकनीकें हैं। लेकिन अभी के लिए, बस ध्यान रखें कि यह एक प्राथमिक डिबगिंग तकनीक है जिसे आप प्रोग्रामर के रूप में उपयोग करेंगे।

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग

अगली कक्षा का पाठ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के बारे में है।

"Whaaaattttt!" (मैं आपको विलाप करते हुए सुनता हूं) "मैं सिर्फ कार्यक्रम लिखना चाहता हूं। मैंने कंप्यूटर वैज्ञानिक बनने के लिए साइन अप नहीं किया है!"

डर नहीं! इसकी दो वजहें हैं जो एक बेहतरीन कदम है।

सबसे पहले, आज के प्रोग्रामिंग वातावरण में, आप बस वस्तु उन्मुख प्रोग्रामिंग अवधारणाओं को समझने के बिना एक प्रभावी प्रोग्रामर नहीं हो सकते हैं। यहां तक ​​कि हमारे बहुत ही सरल एक-लाइन "हैलो वर्ल्ड" कार्यक्रम में एक वस्तु, एक विधि और एक संपत्ति शामिल थी। मेरी राय में, वस्तुओं को नहीं समझना सबसे बड़ी एकल समस्या है जो प्रोग्रामर के पास है। तो हम जानवर का सामना करने जा रहे हैं!

दूसरा, हम इसे यथासंभव दर्द रहित बनाने जा रहे हैं। हम आपको कंप्यूटर विज्ञान शब्दजाल के भार से भ्रमित करने वाले नहीं हैं।

लेकिन इसके ठीक बाद, हम एक पाठ के साथ प्रोग्रामिंग कोड लिखने में वापस कूदने जा रहे हैं, जहां हम एक VBA मैक्रो विकसित करते हैं जिसे आप संभवतः उपयोग कर सकते हैं! हम अगले पाठ में उस कार्यक्रम को थोड़ा और सही करते हैं और एक बार में आपको कई अनुप्रयोगों के साथ VBA का उपयोग कैसे शुरू करें, यह दिखा कर खत्म करते हैं।