Нужно вставить картинку в Powerpoint, затем определить ее местоположение, не выбирая ее

#excel #vba #location #powerpoint #paste

#excel #vba #Расположение #powerpoint #вставить

Вопрос:

Вот небольшой фрагмент моего кода, в котором я вставляю диаграмму из Excel в Powerpoint в виде расширенного метафайла, а затем перемещаю ее в предопределенное местоположение:

 PPApp.ActivePresentation.Slides(SlideNumber).Shapes.PasteSpecial (ppPasteEnhancedMetafile)

PPApp.ActiveWindow.Selection.ShapeRange.Top = ChartTop
PPApp.ActiveWindow.Selection.ShapeRange.Left = ChartLeft
 

Проблема возникает, когда пользователь щелкает мышью между первой и второй строкой кода. Поскольку фигура больше не выбрана, приведенный выше код vba завершается с ошибкой.

Обычно это не было бы проблемой, но макрос в целом выполняется в течение длительного времени, и это происходит много раз в цикле. Существует ли возможное решение для определения местоположения вставленного изображения без необходимости выбора формы?

Ответ №1:

Вам почти никогда не нужно ничего выбирать для работы с ним.

 ' if you're running the code from within PowerPoint:
Dim oSh as Shape
' or if from Excel:
Dim oSh as Object

' Get a reference to the newly pasted shape
' Don't miss the (1) at the end
Set oSh = PPApp.ActivePresentation.Slides(SlideNumber).Shapes.PasteSpecial (ppPasteEnhancedMetafile)(1)

With oSh
  .Top = ChartTop
  .Left = ChartLeft
End With
 

Комментарии:

1. Спасибо! Работает отлично!