2009-10-08 11 views
5

क्या वीबीस्क्रिप्ट के लिए एक्सेल फ़ाइल के भीतर मैक्रो लिखना संभव है जब यह उत्पन्न होता है जो फ़ाइल खोले जाने पर चलाने में सक्षम होगा?वीबीस्क्रिप्ट एक एक्सेल फ़ाइल के भीतर एक मैक्रो लिखने के लिए

Ive ऑटो के लिए एक VBScript मिला excel फ़ाइल और यह के भीतर कुछ डेटा उत्पन्न, यह एक बार चलाता है और सभी डेटा/प्रकार आदि के साथ फ़ाइल उत्पन्न

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

यदि ऐसा है तो इसे कैसे कार्यान्वित किया जाएगा, बाद में मैक्रो को कैसे चलाया जा सकता है vbscript में लिखा जा सकता है?

+0

आपको लगता है कि मैक्रो की एक प्रति शामिल एक XLST टेम्पलेट से फाइल उत्पन्न कर सकते हैं? – Mikeb

उत्तर

5

ग्रेट सलाह divo, हाँ मैं इसे एक टेम्पलेट से बना सकता हूं लेकिन यह एक ऐसा मामला है जहां मुझे स्क्रिप्ट में चर के साथ अधिक लचीलापन और एकीकरण की आवश्यकता होगी।

एक्सेल ऑब्जेक्ट मॉडल वस्तु VBProject.VBComponents एक आकर्षण की तरह काम करता है और मैं वास्तव में क्या देख रहा था, किसी और के प्रयोजन के लिए एक समान जवाब मैं इस जबकि VBProject वस्तु में देख पाया की तलाश के लिए करता है:

Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True 
objExcel.DisplayAlerts = False 
Set objWorkbook = objExcel.Workbooks.Open("C:\scripts\test.xls") 
     Set xlmodule = objworkbook.VBProject.VBComponents.Add(1) 
     strCode = _ 
     "sub test()" & vbCr & _ 
     " msgbox ""Inside the macro"" " & vbCr & _ 
     "end sub" 
     xlmodule.CodeModule.AddFromString strCode 
objWorkbook.SaveAs "c:\scripts\test.xls" 
objExcel.Quit 

सूत्रों का कहना है: Scripting Guy Add a Macro to an Excel Spreadsheet

String for excel macro creation

2

शायद वांछित मैक्रोज़ युक्त एक्सेल दस्तावेज़ मैन्युअल रूप से बनाने का सबसे आसान तरीका होगा। यह दस्तावेज़ तब आपके वीबीस्क्रिप्ट के लिए टेम्पलेट के रूप में सर्वर करेगा।

एक नई फ़ाइल बनाने के बजाय आप इस टेम्पलेट की प्रतिलिपि बना लेंगे, इसे Excel में खोलें और इसे अपने वीबीस्क्रिप्ट का उपयोग करके डेटा के साथ पॉप्युलेट करें।

एक्सेल ऑब्जेक्ट मॉडल का उपयोग करने के लिए एक और जटिल और लचीला विकल्प होगा। ActiveWorkbook.VBProject.VBComponents ऑब्जेक्ट की तलाश करें जो आपको वर्तमान दस्तावेज़ की वीबीए परियोजना में फॉर्म, मॉड्यूल और कक्षाएं जोड़ने की अनुमति देगी। हालांकि, इस विकल्प को कुछ सुरक्षा सेटिंग्स की आवश्यकता है (मूल रूप से आपको वीबीए प्रोजेक्ट में प्रोग्रामेटिक पहुंच की अनुमति देनी होगी)।

संबंधित मुद्दे