Mettre à jour automatiquement les objets OLE à l'aide d'un module complémentaire PowerPoint

Mettre à jour automatiquement les objets OLE

L’une des questions les plus fréquentes posées par les clients d’Aspose.Slides for .NET est de savoir comment créer ou modifier des graphiques modifiables (ou d’autres objets OLE) afin qu’ils se mettent à jour automatiquement lorsque la présentation est ouverte. Malheureusement, PowerPoint ne prend pas en charge les macros automatiques de la même manière qu’Excel et Word. Les seules macros disponibles sont Auto_Open et Auto_Close, et celles‑ci ne s’exécutent automatiquement que depuis un add‑in. Ce court conseil technique montre comment y parvenir.

Tout d’abord, plusieurs add‑ins gratuits sont disponibles et ajoutent la fonctionnalité de macro Auto_Open à PowerPoint, par exemple AutoEvents Add-in et Event Generator.

Après avoir installé l’un de ces add‑ins, ajoutez simplement la macro Auto_Open() (ou OnPresentationOpen() si vous utilisez Event Generator) à votre présentation modèle comme indiqué ci‑dessous :

public void Auto_Open()
{
    // Parcourir chaque diapositive de la présentation.
    foreach (var oSlide in ActivePresentation.Slides)
    {
        // Parcourir toutes les formes de la diapositive actuelle.
        foreach (var oShape in oSlide.Shapes)
        {
            // Vérifier si la forme est un objet OLE.
            if (oShape.Type == msoEmbeddedOLEObject)
            {
                // Objet OLE trouvé. Obtenir sa référence d'objet puis le mettre à jour.
                oObject = oShape.OLEFormat.Object;
                oObject.Application.Update();

                // Maintenant, quitter le programme serveur OLE.
                // Cela libère la mémoire et évite tout problème.
                // De plus, définir oObject sur Nothing pour libérer l'objet.
                oObject.Application.Quit();
                oObject = null;
            }
        }
    }
}

Toute modification apportée aux objets OLE avec Aspose.Slides for .NET sera automatiquement mise à jour lorsque PowerPoint ouvrira la présentation. Si vous avez de nombreux objets OLE et ne souhaitez pas tous les mettre à jour, ajoutez simplement une balise personnalisée aux formes que vous devez traiter et vérifiez‑la dans la macro.