Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 何时在VBA中使用TextFrame或TextFrame2_Excel_Vba_Powerpoint - Fatal编程技术网

Excel 何时在VBA中使用TextFrame或TextFrame2

Excel 何时在VBA中使用TextFrame或TextFrame2,excel,vba,powerpoint,Excel,Vba,Powerpoint,例如,在Powerpoint中: 表示形状对象中的文本框。包含中的文本 文本框以及控制对齐方式的属性和方法 以及文本框架的锚定 表示形状或ShapeRange对象中的文本框。包含 文本框中的文本,并公开 控制文本框的对齐和定位 所以TextFrame2也指shaperage对象,它比TextFrame有更多的属性 例如,我不确定何时或是否应该使用其中一个来操作powerpoint幻灯片表格单元格中的文本值。这两种方法似乎都有效,下面的语句返回TRUE Dim tbl as Table Set

例如,在Powerpoint中:

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

表示形状或ShapeRange对象中的文本框。包含 文本框中的文本,并公开 控制文本框的对齐和定位

所以TextFrame2也指
shaperage
对象,它比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
,是否有明确的指南?

根据Jon Peltier的说法:

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


我猜PPT中也有类似的情况。

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

据Jon Peltier所说:“TextFrame2成员是在Excel 2007中添加的,可以更好地控制文本的格式。因为它不向后兼容,我建议使用TextFrame对象“我猜PPT中也有类似的情况。谢谢@TimWilliams,您可以添加它作为“答案”对于这个问题,我可以关闭它作为接受。同意,使用TextFrame对象,除非你需要做一些只有通过TextFrame2才能使用的古怪的事情(例如,你想设置一个特定的下划线样式)。当然,自从我之前的教程以来,更多的人从2003年和2007年及以后升级,因此,我反对使用TextFrame2的建议没有那么重要。