Powerpoint Interop API обеспечивает доступ к нескольким мастерам слайдов в виде мастера слайдов
У меня есть презентация PowerPoint с несколькими мастер-слайдами. Я хочу получить доступ к текущему активному мастеру слайдов презентации PowerPoint в режиме Master View, используя InterOp API и VB.net. Когда я пытался получить доступ к активному мастеру слайдов, он всегда выбирал первый мастер слайдов, а не активный мастер слайдов. Я пробовал его с помощью слайдов, и я мог получить доступ к текущему слайду. Но в представлении slideMaster я не смог найти способ доступа к указанному мастеру слайдов.
If(ActiveWindow.ActivePane.ViewType = PowerPoint.PpViewType.ppViewSlideMaster) Then 'condition
ActivePresentation.Slides(2) 'this way I can access specified slide.
ActivePresentation.SlideMaster
2 ответа
Если под "активным мастером слайдов" вы подразумеваете мастер слайдов, используемый текущим выбранным слайдом, вы можете получить к нему доступ через
ActiveWindow.Selection.SlideRange(1).Design.SlideMaster
Или так же для мастера первого слайда в презентации
ActivePresentation.Slides(1).Design.SlideMaster
Или в режиме просмотра слайдов
If ActiveWindow.ActivePane.ViewType = ppViewMasterThumbnails Or _
ActiveWindow.ActivePane.ViewType = ppViewSlideMaster Then
ActiveWindow.View.Slide...
End If
Debug.Print ActiveWindow.View.Slide.Name
Debug.Print ActiveWindow.View.Slide.Design.Name
В представлении Slide Master, PPT 2010 (и, вероятно, также 2007), в первой строке указано имя выбранного в настоящий момент макета или мастера, во второй - имя дизайна, лежащего в основе мастера.
В мультимастерной презентации вы смотрите на коллекцию Designs, чтобы прийти к мастерам.
Другие версии PPT работают по-другому. Это объясняет больше о проектах, макетах, мастерах, львах, тиграх и медведях, о мой:
Слайды, мастера, дизайны, макеты... как они все сочетаются друг с другом?