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