Используя PowerPoint 2016, я пишу макрос, который позволяет пользователю вводить данные в живую презентацию, используя пользовательские формы и текстовые поля.Это работает хорошо, за исключением случаев, когда я пытаюсь отобразить текст в SmartArt.Следующий макрос иллюстрирует проблему:
Sub writeToSmartArt()
Dim artShape As Shape
Set artShape = ActivePresentation.Slides(maalSlide).Shapes("Diagram")
MsgBox artShape.SmartArt.Nodes(1).Nodes(1).TextFrame2.TextRange.Text
artShape.SmartArt.Nodes(1).Nodes(1).TextFrame2.TextRange.Text = "testing"
End Sub
Подпрограмма устанавливает форму SmartArt в переменную artShape и сначала распечатывает содержимое указанного узла в MsgBox.На следующем шаге я устанавливаю для свойства text новое значение.Все работает нормально, пока презентация не активна.Я могу вручную запустить саб, и все ведет себя как ожидалось.Однако, когда слайд-шоу запущено, я получаю следующее сообщение об ошибке при попытке записи в узел SmartArt:
Run-time error '-2147467259 (80004005)':
Method 'Text' of object 'TextRange2' failed
Отображение текущего содержимого в MsgBox все еще работает.Как я могу преодолеть эту проблему?