VBA के साथ वर्ड में एक्सेल टेबल कैसे डालें
माइक्रोसॉफ्ट ऑफिस माइक्रोसॉफ्ट वर्ड माइक्रोसॉफ्ट माइक्रोसॉफ्ट एक्सेल नायक शब्द / / April 29, 2020
पिछला नवीनीकरण
VBA एक बहुत शक्तिशाली उपकरण है जिसका उपयोग आप कई Microsoft Office अनुप्रयोगों के बीच बहुत सारे काम को स्वचालित करने के लिए कर सकते हैं। एक सामान्य गतिविधि जिसे आप VBA का उपयोग करके स्वचालित कर सकते हैं, एक Excel तालिका को Word दस्तावेज़ में सम्मिलित कर रहा है।
अनुप्रयोगों के लिए विजुअल बेसिक (VBA) एक बहुत शक्तिशाली उपकरण है जिसका उपयोग आप कई Microsoft Office अनुप्रयोगों के बीच बहुत से काम को स्वचालित करने के लिए कर सकते हैं। एक सामान्य गतिविधि जिसे आप VBA का उपयोग करके स्वचालित कर सकते हैं, एक Excel तालिका को Word दस्तावेज़ में सम्मिलित कर रहा है।
ऐसा करने के दो तरीके हैं। पहले Excel से किसी मौजूदा श्रेणी की एक सीधी प्रतिलिपि और पेस्ट को एक वर्ड डॉक्यूमेंट में एक नई तालिका में स्वचालित कर रहा है। दूसरा एक्सेल में गणना कर रहा है, वर्ड में एक नई तालिका बना रहा है, और तालिका में परिणाम लिख रहा है।
आप कोशिश कर सकते हैं एक मैक्रो रिकॉर्ड करें ऐसा करने के लिए, लेकिन मैक्रो आपको केवल वर्ड के अंदर कार्यों को स्वचालित करने देगा। इस लेख में, आप एक्सेल और वर्ड के बीच इन क्रियाओं को स्वचालित करने के लिए VBA कोड लिखना सीखेंगे।
VBA के साथ एक एक्सेल रेंज में कॉपी और पेस्ट करें
दोनों उदाहरणों में, हम एक नमूना एक्सेल स्प्रेडशीट के साथ शुरू करेंगे। यह नमूना विभिन्न प्रकार के उत्पादों के खरीद आदेशों की एक सूची है।
मान लें कि आप इस वर्कशीट में किसी वर्ड डॉक्यूमेंट में सेल की पूरी रेंज को कॉपी और पेस्ट करना चाहते हैं। ऐसा करने के लिए, आपको एक VBA फ़ंक्शन लिखना होगा जो "कॉपी टू वर्ड" बटन पर क्लिक करने पर चलेगा।
चुनते हैं डेवलपर मेनू से और चुनें सम्मिलित करें रिबन में नियंत्रण समूह से। ड्रॉप-डाउन सूची में, ActiveX नियंत्रण के अंतर्गत बटन नियंत्रण का चयन करें।
अगला, शीट के दाईं ओर कमांड बटन खींचें। आप बटन को राइट-क्लिक करके और सिलेक्ट करके कैप्शन को "वर्ड टू कॉपी" में बदल सकते हैं गुण. कैप्शन टेक्स्ट को बदलें, और आप फ़ॉन्ट आकार और शैली को अपडेट करने के लिए फ़ॉन्ट का उपयोग कर सकते हैं।
ध्यान दें: यदि आप नहीं देखते हैं डेवलपर अपने एक्सेल मेनू में, फिर इसे जोड़ें। चुनते हैं फ़ाइल, विकल्प, रिबन को अनुकूलित करें, और चयन करें सभी कमांड बाएँ ड्रॉप-डाउन से। फिर चलते हैं डेवलपर बाएं फलक से दाईं ओर और समाप्त करने के लिए ठीक का चयन करें।
कॉपी और पेस्ट VBA कोड लिखें
अब आप VBA कोड लिखना शुरू करने के लिए तैयार हैं। आरंभ करने के लिए, नए पर डबल-क्लिक करें वर्ड पर कॉपी करें कोड संपादक विंडो खोलने के लिए बटन।
आपको एक सबरूटीन देखना चाहिए, जिसे Commandbutton1_Click () के रूप में नीचे दिखाया गया है।
आप नीचे दिए गए प्रत्येक अनुभाग की प्रतिलिपि बनाना चाहेंगे। इससे पहले कि आप कोडिंग शुरू करें, VBA का उपयोग करके अपने कंप्यूटर पर Word को नियंत्रित करने के लिए, आपको Microsoft Word संदर्भ लाइब्रेरी को सक्षम करना होगा।
कोड संपादक में, का चयन करें उपकरण मेनू से और चुनें संदर्भ. उपलब्ध संदर्भों की सूची में, नीचे स्क्रॉल करें और सक्षम करें Microsoft Word 16.0 ऑब्जेक्ट लाइब्रेरी.
ठीक का चयन करें, और आप कोडिंग शुरू करने के लिए तैयार हैं। हम एक बार में कोड के प्रत्येक अनुभाग से गुजरेंगे ताकि आप समझ सकें कि वह कोड क्या और क्यों करता है।
सबसे पहले, आपको वैरिएबल और ऑब्जेक्ट बनाने की आवश्यकता होती है, जो रेंज को पकड़ेंगे और आपको वर्ड एप्लीकेशन को नियंत्रित करने की अनुमति देंगे।
एक्सेल के रूप में मंद tblRange। रेंज
शब्द के रूप में मंद वर्डऐप। आवेदन
शब्द के रूप में मंद वर्डडॉक। दस्तावेज़
शब्द के रूप में मंद शब्द। तालिका
कोड की अगली पंक्ति कोशिकाओं की एक विशिष्ट श्रेणी का चयन करती है और इसे VBA में एक्सेल रेंज ऑब्जेक्ट में सहेजती है।
TblRange = ThisWorkbook सेट करें। कार्यपत्रक ( "Sheet1") रेंज। ( "A2: G44")
अगला, आप यह जांचना चाहते हैं कि कंप्यूटर पर वर्ड एप्लिकेशन पहले से खुला है या नहीं। आप इसे पूरा करने के लिए VBA GetObject कमांड के साथ एक विशेष "वर्ग" संदर्भ का उपयोग करके वर्ड एप्लिकेशन को संदर्भित कर सकते हैं। यदि वर्ड पहले से नहीं खोला गया है, तो अगली पंक्ति CreateObject फ़ंक्शन का उपयोग करके इसे लॉन्च करेगी। "त्रुटि फिर से शुरू करें अगला" लाइन कार्यक्रम में अगली पंक्ति के निष्पादन को रोकने से पहले गेटऑबजेक्ट फ़ंक्शन (यदि वर्ड पहले से ही खुला नहीं है) से किसी भी त्रुटि को रोकता है।
त्रुटि फिर से शुरू पर
WordApp = GetObject (वर्ग: = "शब्द सेट करें। एप्लिकेशन ")
यदि WordApp कुछ भी नहीं है, तो WordApp = CreateObject (वर्ग: = "Word सेट करें। एप्लिकेशन ")
अब जब Word एप्लिकेशन लॉन्च किया गया है, तो आप इसे उपयोगकर्ता के लिए दृश्यमान बनाना चाहते हैं और इसे उपयोग के लिए सक्रिय कर सकते हैं।
WordApp। दृश्यमान = सत्य
WordApp। सक्रिय
इसके बाद, आप Word एप्लिकेशन के अंदर एक नया दस्तावेज़ बनाना चाहते हैं।
WordDoc = WordApp सेट करें। दस्तावेज़। जोड़ना
अंत में, आप Word दस्तावेज़ में एक नई तालिका में कक्षों की श्रेणी को कॉपी और पेस्ट करेंगे।
tblRange। प्रतिलिपि
WordDoc। पैराग्राफ (1) .Range PasteExcelTable _
LinkedToExcel: = गलत, _
WordFormatting: = गलत, _
आरटीएफ: = झूठी
उपरोक्त फ़ंक्शन में स्विच स्रोत Excel स्वरूपण (वर्ड स्वरूपण नहीं) और समृद्ध पाठ प्रारूप का उपयोग नहीं करके गैर-लिंक की गई तालिका सम्मिलित करेगा।
अंत में, दस्तावेज़ की तुलना में व्यापक होने वाले एक्सेल पर्वतमाला से निपटने के लिए, आपको नई तालिका को स्वचालित करने की आवश्यकता होगी, ताकि यह आपके नए वर्ड दस्तावेज़ के मार्जिन के भीतर फिट हो।
WordTable = WordDoc सेट करें। टेबल्स (1)
WordTable। AutoFitBehavior (wdAutoFitWindow)
और अब आप कर चुके हैं! फ़ाइल को मैक्रो-सक्षम Excel फ़ाइल (.xlsm एक्सटेंशन) के रूप में सहेजें। संपादक को बंद करें, मूल एक्सेल फ़ाइल को फिर से सहेजें, और फिर अपने कोड बटन को क्लिक करके अपने कोड को देखें!
VBA के साथ एक शब्द तालिका में एक्सेल परिणाम लिखें
इस अगले भाग में, आप VBA कोड लिखेंगे, जो Excel में मानों पर परिकलन करता है, और उन्हें लिखते हैं Word में एक तालिका.
इस उदाहरण के लिए, हम किसी शब्द दस्तावेज़ में तालिका में डेटा की गणना, गणना और परिणाम लिखने वाली 10 पंक्तियों को खींचेंगे। साथ ही, मूल तालिका में चार कॉलम होंगे, और VBA कोड उस सीमा से डेटा की पहली दस पंक्तियों को खींच लेगा।
अंतिम खंड की तरह, हम एक बार में प्रत्येक अनुभाग से गुजरेंगे, ताकि आप समझ सकें कि वह कोड क्या करता है और क्यों।
सबसे पहले, वैरिएबल और ऑब्जेक्ट बनाएं जो डेटा को होल्ड करेंगे और आपको वर्ड एप्लीकेशन को लिखने की अनुमति देंगे।
एक्सेल के रूप में मंद tblRange। रेंज
शब्द के रूप में डिम WrRRange। रेंज
शब्द के रूप में मंद वर्डऐप। आवेदन
शब्द के रूप में मंद वर्डडॉक। दस्तावेज़
शब्द के रूप में मंद शब्द। तालिका
मंद अंतरंग करता है
मंद अंतर्मुखता
स्ट्रिंग के रूप में मंद स्ट्रैड
स्ट्रिंग के रूप में मंद
डिम ने वेरिएंट के रूप में परिचय दिया
डिम इंटोकॉस्ट ऐस वेरिएंट
डिम इंटोटल अस वैरिएंट
अगला, कुल स्तंभ और पंक्तियाँ सेट करें जिन्हें आप एक्सेल श्रेणी से पढ़ना चाहते हैं।
intNoOfRows = 10
intNoOfColumns = 5
पिछले कोड के समान कोड को दोहराएं जो Word को खुलेगा नहीं अगर वह पहले से ही खुला नहीं है।
त्रुटि फिर से शुरू पर
WordApp = GetObject (वर्ग: = "शब्द सेट करें। एप्लिकेशन ")
यदि WordApp कुछ भी नहीं है, तो WordApp = CreateObject (वर्ग: = "Word सेट करें। एप्लिकेशन ")
WordApp। दृश्यमान = सत्य
WordApp। सक्रिय
WordDoc = WordApp सेट करें। दस्तावेज़। जोड़ना
अगली चार पंक्तियाँ उस नए खुले वर्ड डॉक्यूमेंट के अंदर एक टेबल बनाती हैं।
WrdRange = WordDoc सेट करें। रेंज (0, 0)
WordDoc। टेबल्स। WrRRange, intNoOfRows, intNoOfColumns जोड़ें
WordTable = WordDoc सेट करें। टेबल्स (1)
WordTable। सीमाओं। सक्षम = सत्य
अंत में, निम्न लूप इन क्रियाओं को करेगा:
- प्रत्येक पंक्ति के लिए, आदेश दिनांक, आइटम, इकाइयों और लागतों को चर में डालें
- इकाई समय लागत (कुल बिक्री) की गणना करें और एक चर में संग्रहीत करें
- प्रत्येक स्तंभ के लिए, अंतिम तालिका में गणना की गई कुल बिक्री सहित, वर्ड टेबल पर मान लिखें
- अगली पंक्ति पर जाएं, और ऊपर की प्रक्रिया दोहराएं
यहाँ वह कोड कैसा दिखता है:
I = 1 के लिए intNoOfRows पर
J = 1 के लिए intNoOfColumns पर
अगर j = 1 तब
strDate = tblRange। कोशिकाएं (i + 1, j) .वायु
strItem = tblRange। कोशिकाएं (i + 1, j + 1) ।वायु
intUnits = Val (tblRange)। कोशिकाएं (i + 1, j + 2)
intCost = वैल (tblRange)। कोशिकाएं (i + 1, j + 3)
intTotal = intUnits * इंटोकॉस्ट
अगर अंत
केस j का चयन करें
केस है = 1
WordTable। सेल (i, j) .Range पाठ = अकड़
केस है = २
WordTable। सेल (i, j) .Range पाठ = strItem
केस है = 3
WordTable। सेल (i, j) .Range पाठ = अंतरंग
केस है = 4
WordTable। सेल (i, j) .Range पाठ = इंटोकॉस्ट
केस है = ५
WordTable। सेल (i, j) .Range पाठ = अंतर्धारा
केस एल्स
अंत का चयन करें
आगे
आगे
पहले भाग में "सेल" फ़ंक्शन खींचता है Excel से बाहर सेल मान. कक्ष (x, y) का अर्थ है कि यह पंक्ति x और स्तंभ y पर कक्ष के मान को खींचता है।
अंतिम भाग में "सेल" फ़ंक्शन एक ही पंक्ति और कॉलम असाइनमेंट का उपयोग करते हुए वर्ड टेबल में कोशिकाओं को लिखता है।
एक बार जब आप इस VBA कोड को सहेजते हैं और चलाते हैं, तो आप अपने नए बनाए गए Word दस्तावेज़ में परिणाम देखेंगे।
जैसा कि आप देख सकते हैं, यह एक्सेल और वर्ड के बीच कुछ उपयोगी स्वचालन बनाने के लिए बहुत जटिल नहीं है। यह समझने की बात है कि विभिन्न "ऑब्जेक्ट्स" कैसे काम करते हैं जो आपके कंप्यूटर पर एक्सेल और वर्ड दोनों अनुप्रयोगों को बना और नियंत्रित कर सकते हैं।