2013-02-26 91 views
0

我在PowerPoint2010中编写了一个VBA应用程序,它添加了不同的形状并自动命名它们。VBA:无法将ppAutoSizeMixed分配给TextBox.TextFrame.AutoSize

现在我想改变这有三种可能的值Textbox.TextFrame.AutoSize属性:-2,0和1

如果我尝试分配ppAutoSizeMixed用VBA我得到一个“超出范围”例外。 0和1我可以毫不费力地分配。

Debug.Print ActiveWindow.Selection.SlideRange.Shapes(1).TextFrame.AutoSize //-2 
ActiveWindow.Selection.SlideRange.Shapes(1).TextFrame.AutoSize = ppAutoSizeNone //0 
ActiveWindow.Selection.SlideRange.Shapes(1).TextFrame.AutoSize 
= ppAutoSizeMixed//-2: exception 

我可以用PowerPoint更改值,但不能用VBA。是否有人知道这个问题,并知道如何解决它?

谢谢!

+0

-2 /混合就是PPT手中回来的时候,例如文本范围有大胆应用到一些范围但不是所有的。将它作为属性应用并不合理。然而,将混合格式应用于对象会将该属性的值变为混合。在AutoSize的情况下,你期望将它设置为Mixed来完成? – 2013-02-26 20:35:24

+0

谢谢你的回答。我想要实现的是,如果文本框中的文本变得更长,字体会自动调整大小。我认为通过设置AutoSize为ppAutoSizeMixed这是可能的,但现在我明白为什么值是-2。但是没有办法通过调整字体大小来激活设置吗? – hy13 2013-02-28 10:11:10

回答

1

OK,在这里你去:假设在奥什到你的形状参考:

With oSh 
    .TextFrame2.AutoSize = 2 
End With 
相关问题