Код перестал работать в 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

Проблема в том, что, поскольку новая форма добавлена ​​только для чтения, форматирование не может быть установлено!

Другие вопросы по тегам