Präsentation über VBA

VBA-Makros hinzufügen

Aspose.Slides bietet die VbaProject Klasse, um Ihnen zu ermöglichen, VBA-Projekte (und Projektverweise) zu erstellen und vorhandene Module zu bearbeiten. Sie können die IVbaProject Schnittstelle verwenden, um VBA, das in einer Präsentation eingebettet ist, zu verwalten.

  1. Erstellen Sie eine Instanz der Presentation Klasse.
  2. Verwenden Sie den VbaProject Konstruktor, um ein neues VBA-Projekt hinzuzufügen.
  3. Fügen Sie ein Modul zum VbaProject hinzu.
  4. Legen Sie den Quellcode des Moduls fest.
  5. Fügen Sie Referenzen zu hinzu.
  6. Fügen Sie Referenzen zu Microsoft Office hinzu.
  7. Verknüpfen Sie die Referenzen mit dem VBA-Projekt.
  8. Speichern Sie die Präsentation.

Dieser PHP-Code zeigt Ihnen, wie Sie ein VBA-Makro von Grund auf zu einer Präsentation hinzufügen:

  # Erstellt eine Instanz der Präsentationsklasse
  $pres = new Presentation();
  try {
    # Erstellt ein neues VBA-Projekt
    $pres->setVbaProject(new VbaProject());
    # Fügt ein leeres Modul zum VBA-Projekt hinzu
    $module = $pres->getVbaProject()->getModules()->addEmptyModule("Module");
    # Legt den Quellcode des Moduls fest
    $module->setSourceCode("Sub Test(oShape As Shape)MsgBox Test End Sub");
    # Erstellt eine Referenz zu <stdole>
    $stdoleReference = new VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation");
    # Erstellt eine Referenz zu Office
    $officeReference = new 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 die Referenzen zum VBA-Projekt hinzu
    $pres->getVbaProject()->getReferences()->add($stdoleReference);
    $pres->getVbaProject()->getReferences()->add($officeReference);
    # Speichert die Präsentation
    $pres->save("test.pptm", SaveFormat::Pptm);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

VBA-Makros entfernen

Mit der VbaProject Eigenschaft der Presentation Klasse können Sie ein VBA-Makro entfernen.

  1. Erstellen Sie eine Instanz der Presentation Klasse und laden Sie die Präsentation, die das Makro enthält.
  2. Greifen Sie auf das Makromodul zu und entfernen Sie es.
  3. Speichern Sie die modifizierte Präsentation.

Dieser PHP-Code zeigt Ihnen, wie Sie ein VBA-Makro entfernen:

  # Lädt die Präsentation, die das Makro enthält
  $pres = new Presentation("VBA.pptm");
  try {
    # Greift auf das Vba-Modul zu und entfernt es
    $pres->getVbaProject()->getModules()->remove($pres->getVbaProject()->getModules()->get_Item(0));
    # Speichert die Präsentation
    $pres->save("test.pptm", SaveFormat::Pptm);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

VBA-Makros extrahieren

  1. Erstellen Sie eine Instanz der Presentation Klasse und laden Sie die Präsentation, die das Makro enthält.
  2. Überprüfen Sie, ob die Präsentation ein VBA-Projekt enthält.
  3. Durchlaufen Sie alle Module, die im VBA-Projekt enthalten sind, um die Makros anzuzeigen.

Dieser PHP-Code zeigt Ihnen, wie Sie VBA-Makros aus einer Präsentation mit Makros extrahieren:

  # Lädt die Präsentation, die das Makro enthält
  $pres = new Presentation("VBA.pptm");
  try {
    # Überprüft, ob die Präsentation ein VBA-Projekt enthält
    if (!java_is_null($pres->getVbaProject())) {
      foreach($pres->getVbaProject()->getModules() as $module) {
        echo($module->getName());
        echo($module->getSourceCode());
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }