Automatisches Aktualisieren von OLE-Objekten mit MS PowerPoint Add-In

Über das automatische Aktualisieren von OLE-Objekten

Eine der häufigsten Fragen, die von den Kunden von Aspose.Slides für .NET gestellt wird, ist, wie man bearbeitbare Diagramme oder andere OLE-Objekte erstellt oder ändert und diese beim Öffnen der Präsentation automatisch aktualisiert. Leider unterstützt PowerPoint keine automatischen Makros, die in Excel und Word verfügbar sind. Die einzigen verfügbaren sind die Makros Auto_Open und Auto_Close. Diese werden jedoch nur automatisch aus einem Add-in ausgeführt. Dieser kurze technische Hinweis zeigt, wie man das erreichen kann.

Zuerst stehen mehrere Freeware-Add-ins zur Verfügung, die die Auto_Open-Makrofunktion zu PowerPoint hinzufügen, beispielsweise AutoEvents Add-in und Event Generator.

Nach der Installation eines solchen Add-ins fügen Sie einfach das Auto_Open() Makro (OnPresentationOpen() im Fall des “Event Generator”) Ihrer Vorlage-Präsentation hinzu, wie unten gezeigt:

public void Auto_Open()
{
    Shape oShape;
    Slide oSlide;
    object oGraph;

    // Durchlaufen Sie jede Folie in der Präsentation.
    foreach (var oSlide in ActivePresentation.Slides)
    {

        // Durchlaufen Sie alle Formen auf der aktuellen Folie.
        foreach (var oShape in oSlide.Shapes)
        {

            // Überprüfen Sie, ob die Form ein OLE-Objekt ist.
            if (oShape.Type == msoEmbeddedOLEObject)
            {

                // OLE-Objekt gefunden; Objektreferenz abrufen und dann aktualisieren.
                oObject = oShape.OLEFormat.Object;
                oObject.Application.Update();

                // Beenden Sie nun das OLE-Serverprogramm. Dies gibt
                // Speicher frei und verhindert Probleme. Setzen Sie auch oObject gleich
                // auf Nothing, um das Objekt freizugeben.
                oObject.Application.Quit();
                oObject = null;
            }
        }
    }
}