17

例如,在 Powerpoint 中:

文本框对象:

表示 Shape 对象中的文本框。包含文本框架中的文本以及控制文本框架对齐和锚定的属性和方法。

TextFrame2 对象:

表示 Shape 或 ShapeRange 对象中的文本框架。包含文本框架中的文本并公开控制文本框架的对齐和锚定的属性和方法。

所以 TextFrame2 也指ShapeRange对象,它比 TextFrame 多了几个属性。

例如,我不确定何时或是否应该使用其中一个或另一个来操作幻灯片上表格单元格中保存的文本值。两者似乎都有效,并且以下语句返回TRUE

Dim tbl as Table
Set tbl = ActivePresentation.Slides(1).Shapes("Table1").Table

tbl.Cell(r, c).Shape.TextFrame2.TextRange.Characters.Text = _
    tbl.Cell(r, c).Shape.TextFrame.TextRange.Characters.Text

是否有一些关于何时应该使用TextFrame和何时应该使用的明确指南TextFrame2

4

2 回答 2

18

根据 Jon Peltier 的说法:http: //peltiertech.com/programming-excel-2007-2010-autoshapes-with-vba/

“TextFrame2 成员是在 Excel 2007 中添加的,可以更好地控制文本的格式。因为它不向后兼容,我建议使用 TextFrame 对象”

我猜类似的情况也适用于 PPT。

于 2013-05-29T21:08:29.243 回答
1

另外,在 macOSTextFrame中不包含该属性LanguageID,所以你不得不使用TextFrame2. 如果您在跨平台环境中使用该属性,请注意这一点。我过去曾遇到过这个问题。

于 2020-06-06T11:29:14.767 回答