Präsentation über VBA
Der Aspose.Slides.Vba Namespace enthält Klassen und Schnittstellen zum Arbeiten mit Makros und VBA-Code.
Hinweis
Wenn Sie eine Präsentation, die Makros enthält, in ein anderes Dateiformat (PDF, HTML usw.) konvertieren, ignoriert Aspose.Slides alle Makros (Makros werden nicht in die resultierende Datei übertragen).
Wenn Sie Makros zu einer Präsentation hinzufügen oder eine Präsentation speichern, die Makros enthält, schreibt Aspose.Slides einfach die Bytes für die Makros.
Aspose.Slides führt niemals die Makros in einer Präsentation aus.
VBA-Makros hinzufügen
Aspose.Slides bietet die VbaProject Klasse, mit der Sie VBA-Projekte (und Projektverweise) erstellen und vorhandene Module bearbeiten können. Sie können die IVbaProject Schnittstelle verwenden, um VBA in einer Präsentation zu verwalten.
- Erstellen Sie eine Instanz der Presentation Klasse.
- Verwenden Sie den Konstruktor der VbaProject, um ein neues VBA-Projekt hinzuzufügen.
- Fügen Sie ein Modul zum VbaProject hinzu.
- Setzen Sie den Quellcode des Moduls.
- Fügen Sie Verweise auf
hinzu. - Fügen Sie Verweise auf Microsoft Office hinzu.
- Verknüpfen Sie die Verweise mit dem VBA-Projekt.
- Speichern Sie die Präsentation.
Dieser Python-Code zeigt Ihnen, wie Sie ein VBA-Makro von Grund auf zu einer Präsentation hinzufügen:
import aspose.slides as slides
# Erstellt eine Instanz der Präsentationsklasse
with slides.Presentation() as presentation:
# Erstellt ein neues VBA-Projekt
presentation.vba_project = slides.vba.VbaProject()
# Fügt ein leeres Modul zum VBA-Projekt hinzu
module = presentation.vba_project.modules.add_empty_module("Modul")
# Setzt den Quellcode des Moduls
module.source_code = "Sub Test(oShape As Shape) MsgBox ""Test"" End Sub"
# Erstellt einen Verweis auf <stdole>
stdoleReference = slides.vba.VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation")
# Erstellt einen Verweis auf Office
officeReference =slides.vba.VbaReferenceOleTypeLib("Office", "*\\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")
# Fügt Verweise zum VBA-Projekt hinzu
presentation.vba_project.references.add(stdoleReference)
presentation.vba_project.references.add(officeReference)
# Speichert die Präsentation
presentation.save("AddVBAMacros_out.pptm", slides.export.SaveFormat.PPTM)
VBA-Makros entfernen
Über die VbaProject Eigenschaft der Presentation Klasse können Sie ein VBA-Makro entfernen.
- Erstellen Sie eine Instanz der Presentation Klasse und laden Sie die Präsentation, die das Makro enthält.
- Greifen Sie auf das Makro-Modul zu und entfernen Sie es.
- Speichern Sie die modifizierte Präsentation.
Dieser Python-Code zeigt Ihnen, wie Sie ein VBA-Makro entfernen:
import aspose.slides as slides
# Lädt die Präsentation, die das Makro enthält
with slides.Presentation(path + "VBA.pptm") as presentation:
# Greift auf das Vba-Modul zu und entfernt es
presentation.vba_project.modules.remove(presentation.vba_project.modules[0])
# Speichert die Präsentation
presentation.save("RemovedVBAMacros_out.pptm", slides.export.SaveFormat.PPTM)
VBA-Makros extrahieren
- Erstellen Sie eine Instanz der Presentation Klasse und laden Sie die Präsentation, die das Makro enthält.
- Überprüfen Sie, ob die Präsentation ein VBA-Projekt enthält.
- Durchlaufen Sie alle Module, die im VBA-Projekt enthalten sind, um die Makros anzuzeigen.
Dieser Python-Code zeigt Ihnen, wie Sie VBA-Makros aus einer Präsentation, die Makros enthält, extrahieren:
import aspose.slides as slides
with slides.Presentation(path + "VBA.pptm") as pres:
if pres.vba_project is not None: # Überprüft, ob die Präsentation ein VBA-Projekt enthält
for module in pres.vba_project.modules:
print(module.name)
print(module.source_code)