Atualizar objetos OLE automaticamente usando um add-in do PowerPoint
Introdução
Uma das perguntas mais frequentes feitas pelos clientes do Aspose.Slides for .NET é como criar ou modificar gráficos editáveis (ou outros objetos OLE) de modo que eles sejam atualizados automaticamente quando a apresentação for aberta. Infelizmente, o PowerPoint não oferece suporte a macros automáticas da mesma forma que o Excel e o Word. As únicas macros disponíveis são Auto_Open e Auto_Close, e elas só são executadas automaticamente a partir de um add-in. Esta breve dica técnica mostra como alcançar isso.
Atualizar Objetos OLE Automaticamente
Primeiro, existem diversos add-ins gratuitos que adicionam o recurso de macro Auto_Open ao PowerPoint, por exemplo AutoEvents Add-in e Event Generator.
Depois de instalar um desses add-ins, basta acrescentar a macro Auto_Open() (ou OnPresentationOpen() se estiver usando o Event Generator) à sua apresentação-modelo como mostrado a seguir:
public void Auto_Open()
{
// Percorra cada slide na apresentação.
foreach (var oSlide in ActivePresentation.Slides)
{
// Percorra todas as formas no slide atual.
foreach (var oShape in oSlide.Shapes)
{
// Verifique se a forma é um objeto OLE.
if (oShape.Type == msoEmbeddedOLEObject)
{
// Objeto OLE encontrado. Obtenha sua referência e então atualize-o.
oObject = oShape.OLEFormat.Object;
oObject.Application.Update();
// Agora, saia do programa servidor OLE.
// Isso libera memória e evita problemas.
// Além disso, defina oObject como Nothing para liberar o objeto.
oObject.Application.Quit();
oObject = null;
}
}
}
}
Quaisquer alterações feitas nos objetos OLE com o Aspose.Slides for .NET serão atualizadas automaticamente quando o PowerPoint abrir a apresentação. Se você tiver muitos objetos OLE e não quiser atualizá-los todos, basta acrescentar uma tag personalizada nas formas que precisam ser processadas e verificá‑la na macro.