何时在VBA中使用TextFrame或TextFrame2

时间:2013-05-21 15:40:59

标签: vba excel-vba powerpoint-vba excel

示例,在Powerpoint中:

The TextFrame object:

  

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

The TextFrame2 object:

  

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

因此TextFrame2也引用ShapeRange对象,它还有一些属性比TextFrame。

我不确定何时或是否应该使用其中一个,例如,操纵powerpoint幻灯片上表格单元格中保存的文本值。两者似乎都有效,以下语句返回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 vs我应该使用TextFrame2时,是否有一些明确的指南?

2 个答案:

答案 0 :(得分:15)

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

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

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

答案 1 :(得分:1)

此外,TextFrame在macOS中不包含属性LanguageID,因此您不得不使用TextFrame2。请注意,如果您正在跨平台环境中使用该属性。我遇到了这个问题in the past