MS PowerPoint アドインを使用して OLE オブジェクトを自動的に更新
Contents
 [
      
        Hide
      ]
    OLE オブジェクトを自動的に更新するについて
Aspose.Slides for .NET の顧客から最もよく寄せられる質問の一つは、編集可能なチャートまたは他の OLE オブジェクトを作成または変更し、プレゼンテーションを開くときにそれらを自動的に更新する方法です。残念ながら、PowerPoint は Excel や Word で利用可能な自動マクロをサポートしていません。利用できるのは Auto_Open と Auto_Close のマクロだけです。ただし、これらはアドインから自動的に実行されるのみです。この短い技術的ヒントは、それを実現する方法を示します。
まず、Auto_Open マクロ機能を PowerPoint に追加するいくつかのフリーウェアアドインが利用可能です。たとえば AutoEvents Add-in と Event Generator です。
そのようなアドインをインストールした後、以下に示すように、テンプレートプレゼンテーションに Auto_Open() マクロ(「Event Generator」の場合は OnPresentationOpen())を追加します。
public void Auto_Open()  
{  
    Shape oShape;  
    Slide oSlide;  
    object oGraph;  
    // プレゼンテーション内の各スライドをループします。  
    foreach (var oSlide in ActivePresentation.Slides)  
    {  
        // 現在のスライド上のすべての形状をループします。  
        foreach (var oShape in oSlide.Shapes)  
        {  
            // 形状が OLE オブジェクトかどうかを確認します。  
            if (oShape.Type == msoEmbeddedOLEObject)  
            {  
                // OLE オブジェクトを見つけた; オブジェクト参照を取得し、その後更新します。  
                oObject = oShape.OLEFormat.Object;  
                oObject.Application.Update();  
                // さて、OLE サーバープログラムを終了します。これにより  
                // メモリが解放され、問題が防止されます。また、oObject を Nothing に設定して  
                // オブジェクトを解放します。  
                oObject.Application.Quit();  
                oObject = null;  
            }  
        }  
    }  
}  
Aspose.Slides for .NET を使用して OLE オブジェクトに加えられた変更は、PowerPoint がプレゼンテーションを開くときに自動的に更新されます。プレゼンテーションに多くの OLE オブジェクトがあり、それらすべてを更新したくない場合は、処理する必要がある形状にカスタムタグを追加し、マクロでチェックしてください。