2016-02-08 2 views
0

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

Зависит от содержимого, мне нужно выбрать фигуры на 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 году (протестировано OK на PowerPoint 2016):

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

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

+0

Большое спасибо за ответ. Я попытался изменить ViewType для ActiveWindow. Когда я это сделал, все миниатюры исчезли. После этого я увидел только активный слайд, без миниатюр слайдов. Нет, мне не нужно копировать объекты, мне нужно выбрать либо Shapes, либо TextRanges. Зависит от контента. –

+0

На самом деле мой плагин просматривает все содержимое презентации и извлекает текст. Плагин позволяет пользователю перемещаться по презентации, нажимая на текст.Так может возникнуть ситуация, когда пользователь хотел бы выбрать любую форму или текст на слайде или пользовательском макете. Вот почему мне нужно как-то активировать SlideMaster. –

+0

На самом деле, я просто попытался настроить ppViewMasterThumbnails. Я получил следующее исключение: «DocumentWindow (неизвестный член): Недопустимое значение перечисления». Помог ли этот подход, если в презентации есть два или более слайд-мастера? –

Смежные вопросы