#excel #vba #powerpoint
#excel #vba #powerpoint
Вопрос:
Я хочу вставить что-то в PPT (на слайд, на котором уже есть объекты), а затем изменить его размер. В следующем коде в строке 1 я вставляю диапазон на ранее выбранный слайд. После этого я хочу установить переменную shp в качестве формы, а затем изменить ее на .top .width и т.д. Моя проблема в том, что (2) в последней строке должно быть номером индекса фигуры, которую я только что вставил. Как мне это сделать?
slde.Shapes.PasteSpecial 2
Set shp = slde.Shapes(2)
Ответ №1:
Вы могли бы использовать фигуры.Подсчитайте свойство следующим образом:
Dim sld As Slide
Dim shp As Shape
sld.Shapes.PasteSpecial ppPasteDefault
Set shp = sld.Shapes(sld.Shapes.Count)
Ответ №2:
Работа с объектами. Таким образом, вам не придется беспокоиться о поиске нужного объекта. Вот пример
Dim shp As Object
Set shp = sld.Shapes.PasteSpecial(2)
Debug.Print shp.Name
With shp
'~~> Do what you want here
End With
СОВЕТ:
Попробуйте и не работайте с прямыми постоянными значениями…
Если вы используете раннюю привязку, измените
Set shp = sld.Shapes.PasteSpecial(2)
Для
Set shp = sld.Shapes.PasteSpecial(ppPasteEnhancedMetafile)
Для поздней привязки объявите это вверху
Const ppPasteEnhancedMetafile As Integer = 2
а затем используйте
Set shp = sld.Shapes.PasteSpecial(ppPasteEnhancedMetafile)
Таким образом, даже если вы прочитаете код, скажем, через 6 месяцев, вы будете знать, что делает этот код. (Только мои два цента)