#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. Спасибо! Работает отлично!