何时在VBA中使用TextFrame或TextFrame2

问题描述 投票:16回答:2

示例,在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与何时应该使用TextFrame2有明确的指南?

vba excel-vba powerpoint-vba excel
2个回答
18
投票

据乔恩·佩尔捷(Jon Peltier):http://peltiertech.com/programming-excel-2007-2010-autoshapes-with-vba/

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

我猜PPT也有类似情况。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.