何时在VBA中使用TextFrame或TextFrame2

19

例如,在PowerPoint中:

TextFrame对象

表示形状对象中的文本框。包含文本框中的文本以及控制文本框对齐和定位的属性和方法。

TextFrame2对象:

表示形状或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

2个回答

19

3
同意,除非你需要执行一些只能通过TextFrame2对象完成的古怪操作(例如,你想设置特定的下划线样式),否则请使用TextFrame对象。 - Gary McGill
8
当然,自从我之前的教程以来,更多的人已从2003年及更早版本升级到2007年及更高版本,因此我反对使用TextFrame2的建议不再那么相关。 - Jon Peltier

1
此外,在macOS中,TextFrame不包含属性LanguageID,因此您必须使用TextFrame2。如果您在跨平台环境中使用该属性,请注意这一点。我曾经遇到过这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接