幻灯片处于活动状态时设置 SmartArt 文本
Set SmartArt text when slideshow is active
我正在使用 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中打印出指定节点的内容。在下一步中,我将文本 属性 设置为新值。只要演示文稿未处于活动状态,一切都可以正常工作。我可以手动 运行 sub,并且一切都按预期运行。但是,当幻灯片放映 运行ning 时,我在尝试写入 SmartArt 节点时收到以下错误消息:
Run-time error '-2147467259 (80004005)':
Method 'Text' of object 'TextRange2' failed
显示MsgBox 中的当前内容仍然有效。我该如何克服这个问题?
不确定为什么在幻灯片模式下会出现错误。但是,解决方法是使用节点的 Shape()
方法直接访问形状,而不是节点本身,如下所示:artShape.SmartArt.Nodes(1).Nodes(1).Shapes(1).TextFrame2.TextRange.Text = "testing"
。希望这对您有所帮助!
我遇到了同样的问题,所以改用SmartArt.Nodes(),我用的是SmartArt.AllNodes()。
示例:
ppt_output.Slides(SLIDESMART).Shapes("TheList").SmartArt.AllNodes(1).Shapes.TextFrame2.TextRange.Text
我正在使用 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中打印出指定节点的内容。在下一步中,我将文本 属性 设置为新值。只要演示文稿未处于活动状态,一切都可以正常工作。我可以手动 运行 sub,并且一切都按预期运行。但是,当幻灯片放映 运行ning 时,我在尝试写入 SmartArt 节点时收到以下错误消息:
Run-time error '-2147467259 (80004005)': Method 'Text' of object 'TextRange2' failed
显示MsgBox 中的当前内容仍然有效。我该如何克服这个问题?
不确定为什么在幻灯片模式下会出现错误。但是,解决方法是使用节点的 Shape()
方法直接访问形状,而不是节点本身,如下所示:artShape.SmartArt.Nodes(1).Nodes(1).Shapes(1).TextFrame2.TextRange.Text = "testing"
。希望这对您有所帮助!
我遇到了同样的问题,所以改用SmartArt.Nodes(),我用的是SmartArt.AllNodes()。
示例:
ppt_output.Slides(SLIDESMART).Shapes("TheList").SmartArt.AllNodes(1).Shapes.TextFrame2.TextRange.Text