web-dev-qa-db-ja.com

VBAでTextFrameまたはTextFrame2を使用する場合

例、PowerPointの場合:

TextFrameオブジェクト:

Shapeオブジェクトのテキストフレームを表します。テキストフレーム内のテキストと、テキストフレームの配置と固定を制御するプロパティとメソッドが含まれます。

TextFrame2オブジェクト:

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を使用する必要がある場合についての明確なガイドはありますか?

16
David Zemens

Jon Peltierによると: http://peltiertech.com/programming-Excel-2007-2010-autoshapes-with-vba/

「TextFrame2メンバーはExcel2007で追加され、テキストの書式設定をより適切に制御できるようになりました。下位互換性がないため、TextFrameオブジェクトを使用することをお勧めします。」

同様の状況がPPTにも当てはまると思います。

17
Tim Williams