प्रस्तुतीकरण में VBA प्रोजेक्ट्स का प्रबंधन Python द्वारा
परिचय
Aspose.Slides मैक्रो और VBA कोड के साथ काम करने के लिए क्लासेज़ और इंटरफेसेज़ प्रदान करता है।
Warning
जब आप मैक्रो वाले प्रस्तुति को दूसरे फ़ाइल फ़ॉर्मेट (PDF, HTML, आदि) में परिवर्तित करते हैं, तो Aspose.Slides सभी मैक्रो को नजरअंदाज कर देता है (मैक्रो resulting फ़ाइल में नहीं ले जाए जाते)।
जब आप प्रस्तुति में मैक्रो जोड़ते हैं या मैक्रो वाले प्रस्तुति को पुनः सहेजते हैं, तो Aspose.Slides केवल मैक्रो के बाइट्स लिखता है।
Aspose.Slides कभी भी प्रस्तुति में मैक्रो को चलाता नहीं है।
VBA मैक्रो जोड़ें
Aspose.Slides VbaProject क्लास प्रदान करता है जिससे आप VBA प्रोजेक्ट (और प्रोजेक्ट रेफ़रेंसेज़) बना सकते हैं और मौजूदा मॉड्यूल संपादित कर सकते हैं। आप VbaProject क्लास का उपयोग करके प्रस्तुति में एम्बेडेड VBA को प्रबंधित कर सकते हैं।
- Presentation क्लास का एक उदाहरण बनाएं।
- नया VBA प्रोजेक्ट जोड़ने के लिए VbaProject कन्स्ट्रक्टर का उपयोग करें।
- VBA प्रोजेक्ट में एक मॉड्यूल जोड़ें।
- मॉड्यूल का स्रोत कोड सेट करें।
stdoleके रेफ़रेंसेज़ जोड़ें।- Microsoft Office के रेफ़रेंसेज़ जोड़ें।
- रेफ़रेंसेज़ को VBA प्रोजेक्ट से जोड़ें।
- प्रस्तुति को सहेजें।
यह Python कोड दर्शाता है कि कैसे शून्य से प्रस्तुति में VBA मैक्रो जोड़ा जाए:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, VbaProject, VbaReferenceOleTypeLib
presentation = Presentation()
try:
# एक नया VBA प्रोजेक्ट बनाएं।
vba_project = VbaProject()
presentation.setVbaProject(vba_project)
# एक खाली मॉड्यूल जोड़ें और उसका स्रोत कोड सेट करें।
module = vba_project.getModules().addEmptyModule("Module")
module.setSourceCode('Sub Test(oShape As Shape)\n MsgBox "Test"\nEnd Sub')
# stdole और Microsoft Office के रेफ़रेंसेज़ बनाएं।
stdole_reference = VbaReferenceOleTypeLib("stdole", r"*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\system32\stdole2.tlb#OLE Automation")
office_reference = VbaReferenceOleTypeLib("Office", r"*\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.0#0#C:\Program Files\Common Files\Microsoft Shared\OFFICE14\MSO.DLL#Microsoft Office 14.0 Object Library")
# VBA प्रोजेक्ट में रेफ़रेंसेज़ जोड़ें।
vba_project.getReferences().add(stdole_reference)
vba_project.getReferences().add(office_reference)
# प्रेजेंटेशन सहेजें।
presentation.save("test.pptm", SaveFormat.Pptm)
finally:
presentation.dispose()
Note
आप Aspose Macro Remover को देखना चाह सकते हैं, जो PowerPoint, Excel और Word दस्तावेज़ों से मैक्रो हटाने के लिए एक मुफ्त वेब ऐप है।VBA मैक्रो हटाएँ
आप getVbaProject मेथड का उपयोग करके VBA मैक्रो हटा सकते हैं।
- Presentation क्लास का एक उदाहरण बनाएं और वह प्रस्तुति लोड करें जिसमें मैक्रो हो।
- मैक्रो मॉड्यूल तक पहुँचें और उसे हटाएँ।
- संशोधित प्रस्तुति को सहेजें।
यह Python कोड दर्शाता है कि VBA मैक्रो कैसे हटाया जाए:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
# मैक्रो वाले प्रस्तुतीकरण को लोड करें।
presentation = Presentation("VBA.pptm")
try:
# VBA मॉड्यूल तक पहुंचें और उसे हटाएँ।
vba_project = presentation.getVbaProject()
if vba_project is not None and len(list(vba_project.getModules())) > 0:
module = vba_project.getModules().get_Item(0)
vba_project.getModules().remove(module)
# प्रस्तुतीकरण सहेजें।
presentation.save("test.pptm", SaveFormat.Pptm)
finally:
presentation.dispose()
VBA मैक्रो निकालें
- Presentation क्लास का एक उदाहरण बनाएं और वह प्रस्तुति लोड करें जिसमें मैक्रो हो।
- जांचें कि क्या प्रस्तुति में VBA प्रोजेक्ट मौजूद है।
- VBA प्रोजेक्ट में मौजूद सभी मॉड्यूल को लूप करके मैक्रो देखें।
यह Python कोड दर्शाता है कि मैक्रो वाले प्रस्तुति से VBA मैक्रो कैसे निकाले जाएँ:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
# मैक्रो वाले प्रस्तुतीकरण को लोड करें।
presentation = Presentation("VBA.pptm")
try:
# जांचें कि क्या प्रस्तुतीकरण में VBA प्रोजेक्ट है।
vba_project = presentation.getVbaProject()
if vba_project is not None:
for module in vba_project.getModules():
print(module.getName())
print(module.getSourceCode())
finally:
presentation.dispose()
जाँचें कि VBA प्रोजेक्ट पासवर्ड-सुरक्षित है या नहीं
VbaProject.isPasswordProtected मेथड का प्रयोग करके आप निर्धारित कर सकते हैं कि प्रोजेक्ट की प्रॉपर्टी पासवर्ड-सुरक्षित हैं या नहीं।
- Presentation क्लास का एक उदाहरण बनाएं और वह प्रस्तुति लोड करें जिसमें मैक्रो हो।
- जांचें कि प्रस्तुति में VBA project है या नहीं।
- देखें कि VBA प्रोजेक्ट पासवर्ड-सुरक्षित है या नहीं ताकि उसकी प्रॉपर्टीज़ देखी जा सकें।
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
presentation = Presentation("VBA.pptm")
try:
# जाँचें कि क्या प्रस्तुतीकरण में VBA प्रोजेक्ट है।
vba_project = presentation.getVbaProject()
if vba_project is not None:
if vba_project.isPasswordProtected():
print(f"The VBA project '{vba_project.getName()}' is password-protected for viewing its properties.")
finally:
presentation.dispose()
अक्सर पूछे जाने वाले प्रश्न
यदि मैं प्रस्तुति को PPTX के रूप में सहेजूँ तो मैक्रो के साथ क्या होता है?
मैक्रो हटा दिए जाएंगे क्योंकि PPTX VBA को समर्थन नहीं देता। मैक्रो रखें के लिए PPTM, PPSM, या POTM चुनें।
क्या Aspose.Slides प्रस्तुति के भीतर मैक्रो चला सकता है, उदाहरण के लिए डेटा रिफ्रेश करने के लिए?
नहीं। लाइब्रेरी कभी भी VBA कोड को नहीं चलाती; निष्पादन केवल PowerPoint में उचित सुरक्षा सेटिंग्स के साथ ही संभव है।
क्या VBA कोड से जुड़े ActiveX कंट्रोल के साथ काम करना समर्थित है?
हां, आप मौजूदा ActiveX controls तक पहुंच सकते हैं, उनके गुण बदल सकते हैं, और उन्हें हटा सकते हैं। यह तब उपयोगी है जब मैक्रो ActiveX के साथ काम करते हैं।