Код перестал работать в Powerpoint 2016
Код, который отлично работает в более ранних версиях PPT, перестал работать в 2016 году. Когда я пытаюсь изменить левое свойство фигуры на диаграмме, я получаю Method left of object shape failed
ошибка. Я могу прекрасно прочитать .Left
имущество.
У меня заканчиваются идеи? Что я могу сделать?
Sub test11()
Dim sld As Slide
Dim objChart As Object
Dim shpBubble As Object
Set sld = ActivePresentation.Slides("ScatterPlot01_Purch6")
Set objChart = sld.Shapes("Chart01").Chart
sld.Select
objChart.Select
Set shpBubble = objChart.Shapes("P01")
'shpBubble.Select
Debug.Print shpBubble.Left, shpBubble.Visible
shpBubble.Left = 10
End Sub
1 ответ
ОБНОВИТЬ
После тестирования в PowerPoint 2010 и 2013, где он работает, теперь это похоже на ошибку в 2016 году!
* КОНЕЦ *
Мне удалось воссоздать ошибку в PowerPoint 2016 (ПК), вручную добавив фигуру в тестовую диаграмму (выберите диаграмму, затем нажмите " Форматировать / вставить фигуры") и попытавшись записать некоторые из ее свойств, включая положение и форматирование, например изменение цвета заливки., Все выдают ошибку.
Возможно, один из обходных путей - использовать метод.Delete для удаления нужной фигуры, а затем добавить новую фигуру с требуемым размером и положением. Что-то вроде этого:
Sub test11()
Dim sld As Slide
Dim objChart As Chart 'Object
Dim shpBubble As Shape 'Object
Set sld = ActivePresentation.Slides("ScatterPlot01_Purch6")
Set objChart = sld.Shapes("Chart01").Chart
sld.Select
objChart.Select ' this won't work as you can only select the parent shape sld.Shapes("Chart01")
With objChart
.Shapes("P01").Delete
.Shapes.AddShape msoShapeOval, 10, 10, 20, 20
End With
End Sub
Проблема в том, что, поскольку новая форма добавлена только для чтения, форматирование не может быть установлено!