एक्सेल टू वर्ड मैक्रो - एक्सेल टिप्स

विषय - सूची

इस सप्ताह के एक्सेल प्रश्न प्रदान करने वाले जेक का धन्यवाद:

मैं एक मैक्रो कैसे लिख सकता हूं जो एक्सेल स्प्रेडशीट डेटा लेगा और डेटा की प्रत्येक पंक्ति के लिए एक वर्ड फ़ाइल बनाएगा?

जेक - एक महान विचार क्या है! मेरे पास अक्सर पूरी कंपनी के लिए बिक्री परिणाम होते हैं और यह बहुत अच्छा होगा कि प्रत्येक प्रतिनिधि को केवल वर्ड में उसकी जानकारी भेज सके। आप मेल मर्ज का उपयोग करके वर्ड से ऐसा कर सकते हैं, लेकिन एक्सेल से वर्ड को नियंत्रित करना एक दिलचस्प संभावना है। नीचे दिया गया उदाहरण काफी सीधा है, लेकिन कोई इस अवधारणा का निर्माण करने में सक्षम होगा कि वह काफी उन्नत अनुप्रयोग कर सके।

सबसे पहले, आइए एक नमूना डेटा सेट पर एक नज़र डालें। मैंने दो शीटों के साथ एक वर्कबुक बनाई - एक को डेटा और एक को टेम्प्लेट कहा जाता है। डेटा वर्कशीट में डेटा की कई पंक्तियाँ होती हैं। टेम्प्लेट वर्कशीट में Word दस्तावेज़ की संरचना है जिसे मैं बनाना चाहता हूं। इस मामले में, मैं डेटाबेस के कॉलम A से सेल C4 तक के नाम को कॉपी करना चाहूंगा। कॉलम B: डेटाबेस का E कोशिकाओं C10: C13 में जाएगा।

सबसे पहले, आइए एक नमूना डेटा सेट पर एक नज़र डालें। मैंने दो शीटों के साथ एक वर्कबुक बनाई - एक को डेटा और एक को टेम्प्लेट कहा जाता है। डेटा वर्कशीट में डेटा की कई पंक्तियाँ होती हैं। टेम्प्लेट वर्कशीट में Word दस्तावेज़ की संरचना है जिसे मैं बनाना चाहता हूं। इस मामले में, मैं डेटाबेस के कॉलम A से सेल C4 तक के नाम को कॉपी करना चाहूंगा। कॉलम B: डेटाबेस का E कोशिकाओं C10: C13 में जाएगा।

डेटा शीट
टेम्प्लेट शीट

VB संपादक की शुरुआत alt-F11 से करें। चूँकि हम वर्ड कमांड यहाँ जारी करना चाहते हैं, टूल्स> सन्दर्भों पर जाएँ। "Microsoft Word 8" खोजने के लिए नीचे स्क्रॉल करें और इस आइटम का चयन करने के लिए अगले बॉक्स को चेक करें।

Excel से Word को नियंत्रित करने के लिए, आपको Word एप्लिकेशन का प्रतिनिधित्व करने के लिए एक चर को परिभाषित करने की आवश्यकता है। नीचे दिए गए उदाहरण में, मैंने appWD का इस्तेमाल किया। Excel Macro में किसी भी कमांड के लिए जिसे आप Word एप्लिकेशन पर लागू करना चाहते हैं, आप बस कमांड को AppWD के साथ जोड़ते हैं। वास्तव में, चूंकि मैंने पहले कभी भी वर्ड मैक्रो कोड की एक पंक्ति नहीं लिखी है, मैंने वर्ड में गया, क्रियाओं को रिकॉर्ड किया, फिर उस कोड को एक्सेल में कॉपी किया, प्रत्येक लाइन से पहले उपसर्ग को जोड़ते हुए।

Sub ControlWord() ' You must pick Microsoft Word 8.0 from Tools>References ' in the VB editor to execute Word commands. ' See VB Help topic "Controlling One Microsoft Office Application from Another" ' for more information. ' Originally published by www.MrExcel.com 2/28/1999 Dim appWD As Word.Application ' Create a new instance of Word & make it visible Set appWD = CreateObject("Word.Application.8") appWD.Visible = True Sheets("Data").Select 'Find the last row with data in the database FinalRow = Range("A9999").End(xlUp).Row For i = 2 To FinalRow Sheets("Data").Select ' Copy the name to cell C4 Range("A" & i).Copy Destination:=Sheets("Template").Range("C4") ' Copy data columns, transpose and paste in C10:C13 Range("B" & i & ":E" & i).Copy Sheets("Template").Select Range("C10").PasteSpecial Transpose:=True ' Copy the data for the new document to the clipboard Range("A1:F15").Copy ' Tell Word to create a new document appWD.Documents.Add ' Tell Word to paste the contents of the clipboard into the new document appWD.Selection.Paste ' Save the new document with a sequential file name appWD.ActiveDocument.SaveAs FileName:="File" & i ' Close this new word document appWD.ActiveDocument.Close Next i ' Close the Word application appWD.Quit End Sub

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

इस बेहतरीन सवाल के लिए जेक को फिर से धन्यवाद। कई एप्लिकेशन हैं जहां एक्सेल के अंदर से वर्ड को नियंत्रित करना एक शक्तिशाली समाधान प्रदान कर सकता है।

दिलचस्प लेख...