我想知道是否有办法在PowerPoint 2010中使用VBA更改SmartArt对象的每个节点的宽度/高度。
我使用以下代码尝试过此操作但最终出现错误消息:
ActivePresentation.Slides(i).Shapes(2).SmartArt.AllNodes(j).Shapes.Height = 100
我在Word 2010中找到了类似问题的链接,似乎无法使用VBA更改大小,因为height属性是只读的。 http://www.excelforum.com/word-programming-vba-macros/860581-word-2010-smartart-vba-how-to-change-size.html
如果有人知道是否有可能在VBA中执行此操作,请告诉我。谢谢!
答案 0 :(得分:0)
这不是完全答案,但希望它会有所帮助。您似乎无法单独更改节点的宽度或高度。但是你可以用这种方式建立一个更大或更小的节点:
'to enlarge
ActivePresentation.Slides(i).Shapes(2).SmartArt.AllNodes(j).Larger
'to make it smaller
ActivePresentation.Slides(i).Shapes(2).SmartArt.AllNodes(j).Smaller
答案 1 :(得分:0)
您可以使用缩放,然后使用width属性计算缩放系数。这种方法的缺点是它会影响对象的大小。我使用转换为形状来处理它。 SmartArts很痛苦。
Node.Shapes.ScaleWidth Application.CentimetersToPoints(4.5) / Node.Shapes.Height, msoFalse
上面的代码会将您的宽度缩放到4.5厘米。
答案 2 :(得分:-1)
您可以通过缩放来改变它(我认为):
ActivePresentation.Slides(i).Shapes(2).SmartArt.AllNodes(j).Shapes.ScaleHeight 1.75, msoFalse, msoScaleFromTopToLeft