Автоматическое обновление объектов 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; | |
} | |
} | |
} |