Автоматическое обновление объектов OLE с использованием надстройки MS PowerPoint

Об обновлении объектов OLE автоматически

Один из наиболее частых вопросов, задаваемых клиентами Aspose.Slides, заключается в том, как создать или изменить редактируемые диаграммы или любые другие объекты OLE и заставить их автоматически обновляться при открытии презентации. К сожалению, PowerPoint не поддерживает автоматические макросы, которые доступны в Excel и Word. Единственными доступными являются макросы Auto_Open и Auto_Close. Однако они запускаются автоматически только из надстройки. Этот краткий технический совет показывает, как это осуществить.

Во-первых, доступно несколько бесплатных надстроек, которые добавляют функцию макроса Auto_Open в PowerPoint, например, AutoEvents Add-in и Event Generator.

После установки такой надстройки просто добавьте макрос Auto_Open() (OnPresentationOpen() в случае “Event Generator”) в свою шаблонную презентацию, как показано ниже:

Shape oShape;
Slide oSlide;
// Loop through each slide in the presentation.
for (var oSlide : ActivePresentation.Slides) {
// Loop through all the shapes on the current slide.
for (var oShape : oSlide.Shapes) {
// Check whether the shape is an OLE object.
if ((oShape.Type == msoEmbeddedOLEObject)) {
// Found an OLE object; obtain object reference, and then update.
oObject = oShape.OLEFormat.Object;
oObject.Application.Update();
// Now, quit out of the OLE server program. This frees
// memory, and prevents any problems. Also, set oObject equal
// to Nothing to release the object.
oObject.Application.Quit();
oObject = null;
}
}
}