PowerPoint vb.net ссылка на текущий слайд - PullRequest
0 голосов
/ 27 июня 2018

При написании надстройки для PowerPoint в VB .NET и любой строки, которую я написал для вставки различных типов фигур, я получаю сообщение об ошибке: «Ссылка на элемент без общего доступа требует ссылки на объект»

Я гуглил, и все предложения начинаются с

Slide.Shapes.AddShape

Хотя это и дает ошибку выше, например

NewBubble = Slide.Shapes.AddShape(MsoAutoShapeType.msoShapeOval, 20, 150 + (i * 10), cm2points(0.4), cm2points(0.4))

Итак, как мне сослаться на активный слайд, чтобы я мог перейти к ".Shapes" или как-нибудь еще?

У меня "Imports Microsoft.Office.Interop.PowerPoint" вверху и я пробовал "PowerPoint. Etc" и "Application. Etc", но, похоже, тоже не работает.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Вы пробовали использовать: Globals.ThisAddIn.Application.ActiveWindow.View.Slide?

Как насчет: Globals.ThisAddIn.Application.ActivePresentation.SlideShowWindow.View.Slide?

Я думаю, что вы также можете обработать Application.SlideSelectionChanged и затем перейти к выбранным слайдам как SlideRange к параметру обработчика событий.

0 голосов
/ 27 июня 2018

Я говорю на VBA, а не на VB.NET, но перевод не должен быть слишком сложным:

В обычном (т.е. редактируемом) виде это даст вам ссылку на текущий слайд:

ActiveWindow.Selection.SlideRange(1)

Если вы находитесь в режиме слайд-шоу, вы используете его, чтобы получить ссылку на текущий слайд:

SlideShowWindows(1).View.Slide

с предупреждением о том, что может быть более одного окна показа слайдов, если выполняется более одного показа слайдов (редко, но это может произойти). Чтобы быть в безопасности, сначала проверьте SlideShowWindows.Count.

...