में किसी मैक्रो को चलाने के लिए स्ट्रिंग के लिए एक साथ शीर्षक कोशिश कर रहा है एक चुनौती के लिए पर्याप्त था ...PowerPoint
मैं PowerShell से कुछ PowerPoint मैक्रो को चलाने के लिए कोशिश कर रहा हूँ PowerShell के माध्यम से COM वस्तु के माध्यम से एक प्रकार पासिंग। मुझे एक्सेल के लिए पावरहेल से मैक्रोज़ चलाने में काफी अच्छा लगा है। जब मैं एक्सेल पर मैक्रोज़ चलाता हूं, तो COM ऑब्जेक्ट से रन() विधि विभिन्न प्रकार के तर्क लेती है, भले ही मैक्रो के पास कोई पैरामीटर हो। हालांकि दूसरी ओर, पावरपॉइंट रन() विधि पैरामीटर की अपेक्षा करती है, और मैं उन्हें कैसे पास करना है, यह नहीं कर सकता।
मेरा मैक्रो एक स्ट्रिंग को पारित करने की उम्मीद कर रहा है, मैंने profusely googled और कम आ गया है।
त्रुटि::
type must not be ByRef
मैं PowerShell में पावर प्वाइंट के लिए एक साथ डाल दिया है एक बहुत ही बुनियादी PoC:
कोड:
# PowerPoint test
Add-type -AssemblyName office
$PowerPoint = New-Object -comobject PowerPoint.Application
$PowerPoint.Visible = [Microsoft.Office.Core.MsoTriState]::msoTrue
$presentation2 = $PowerPoint.Presentations.open("C:\macros.pptm")
$presentation = $PowerPoint.Presentations.open("C:\Test For Macros.pptx")
$PowerPoint.run("macros.pptm!IAM",[ref]"Feb")
$presentation.save()
$presentation.close()
$presentation2.close()
$PowerPoint.quit()
# extra clean up omitted
The I हमेशा इस त्रुटि मिलती है मैक्रो स्वयं बस कुछ पाठ बॉक्स में ले जाता है, यह PowerPoint से चलाते समय ठीक काम करता है।
आवश्यकता:
मैं अब एक से अधिक फ़ाइलों और स्लाइड भर में इस स्वचालित करना चाहते हैं।
Documentation on the PowerPoint COM object Run method, दो पैरामीटर के लिए आवश्यकता दिखा रहा है।
आप pptm में मैक्रो (उप के कम से कम घोषणा) पोस्ट कर सकते हैं?क्या आप हमें बता सकते हैं कि इसमें किस तरह के संदर्भ (उपकरण> संदर्भ) शामिल हैं? क्या आप इसका परीक्षण कर सकते हैं (1) क्या आप मैक्रो (2) की शुरुआत में एक संदेश बॉक्स दिखा सकते हैं, उसी प्रकार के तर्कों के साथ एक और मैक्रो उसी फ़ाइल से चलाया जा सकता है (3) तर्क के बिना एक ही फ़ाइल से एक और मैक्रो हो सकता है चलते हैं? (4) पीपीटीएम फाइलों से कोई मैक्रो आपके कंप्यूटर पर पावरशेल से चलाया जा सकता है? – z32a7ul
मैंने इनसे पूछा क्योंकि मेरी परिकल्पना यह है कि त्रुटि तब नहीं होती जब पैरामीटर मैक्रो को सौंपे जाते हैं लेकिन बाद में, और एक अपवाद वापस फेंक दिया जाता है और अंततः पावरशेल द्वारा पकड़ा जाता है। – z32a7ul