1

我正在使用一个小的 VBA 脚本在后台应用一些文本。该脚本在 PowerPoint 2007 和 PowerPoint 2010 上运行良好。

但是,在 PowerPoint 2013 中,设置 Shape.Height 和 Shape.Width 无效。这是代码片段。任何帮助,将不胜感激。

Public Sub applyWatermark()

Dim curDesign As Design
Set curDesign = ActivePresentation.Designs.Item(1)
Dim masterSlide As Master
Set masterSlide = curDesign.SlideMaster

Dim shape As shape
Set shape = masterSlide.Shapes.AddTextbox(msoShapeRectangle, 0#, 0#, 100#, 100#)

shape.TextEffect.Text = "Watermark"

' Setting height and width works fine on PPT 2010 but does not work on PPT 2013
shape.Height = 200
shape.Width = 300

shape.TextFrame2.WordWrap = msoTrue
shape.TextFrame2.WarpFormat = msoWarpFormat1
shape.Left = 200
shape.Top = 200

End Sub
4

2 回答 2

1

我相信这是 MS 开发团队的一个已知限制——在某些情况下,它只是无法正确触发。一个建议是改为更改字体大小,但如果您实际上需要形状中的特定字体大小,这并没有多大帮助。

于 2013-05-31T21:32:13.917 回答
0

这是 PowerPoint 2013 的问题。

解决方法是设置

Myshape.TextFrame2.WarpFormat = msoWarpFormat37

http://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/2c1cf339-aa90-4d82-9475-0ff5f49ac1b1/提供了解决方法。

于 2013-06-07T05:11:45.140 回答