使用VBA for PowerPoint调整SmartArt节点的大小

时间:2015-03-04 04:44:28

标签: vba excel-vba powerpoint word-vba powerpoint-vba

我想知道是否有办法在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中执行此操作,请告诉我。谢谢!

3 个答案:

答案 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