Выберите форму на SlideMaster в PowerPoint 2007

Я работаю над плагином для PowerPoint, который взаимодействует с ним, когда PowerPoint в представлении SlideMaster.

В зависимости от содержимого, мне нужно выбрать Shapes либо на SlideMaster, либо на CustomLayouts.

Мне удалось выбрать их на CustomLayouts, но мне не удалось сделать это, когда Shapes расположены на SlideMaster.

Я пытался использовать следующие подходы:

Первый подход

presentation.Designs[1].SlideMaster.Shapes[1].Select();

Этот подход работает только тогда, когда пользователь вручную выбирает конкретный мастер слайдов. В противном случае я получаю исключение:

"Форма (неизвестный элемент): неверный запрос. Чтобы выбрать фигуру, ее вид должен быть активным".

Второй подход

presentation.Application.ActiveWindow.View.Slide = document.Designs[2].SlideMaster;

Когда я использую этот подход, я получаю следующее исключение:

Попытка чтения или записи защищенной памяти. Это часто указывает на то, что другая память повреждена.

Я не нашел способов активировать SlideMaster для выбора фигур на нем.

Есть ли способы сделать это?

Заранее спасибо.

1 ответ

Чтобы выбрать что-либо в PowerPoint, вам нужно управлять видом окна. Это позволит вам выбрать первую фигуру на слайд-мастере, переключив вид сначала:

Для PowerPoint 2007:

CommandBars.ExecuteMso ("ViewSlideMasterView")
DoEvents
ActivePresentation.SlideMaster.CustomLayouts(1).Select
SendKeys ("{UP}")

Не-SendKeys метод, который должен работать, но не работает в 2007 году (проверено нормально в PowerPoint 2016):

ActiveWindow.ViewType = ppViewMasterThumbnails
With ActiveWindow.View.Slide
  .Shapes(1).Select
End With

Кроме того, вам действительно нужно выбрать объект? В зависимости от того, что вы делаете с ним, вам может даже не понадобиться выбирать его и, следовательно, не нужно управлять окнами. Например, если вы хотите скопировать или отформатировать его, вам не нужно выбирать его. Если вы хотите сгруппировать его с чем-то другим, вам нужно сначала выбрать его.

Другие вопросы по тегам