TextFrame オブジェクト (Publisher)

Shape オブジェクトのテキスト フレームを表します。 テキスト ボックスのテキストが含まれ、テキスト ボックスの余白と文字の向き (縦書きと横書き) を設定するプロパティも含まれます。

注釈

Shape.TextFrame プロパティを使用して、図形の TextFrame オブジェクトを取得します。

TextRange プロパティは、指定したテキスト フレーム内のテキスト範囲を表す TextRange オブジェクトを返します。

注:

一部の図形では、添付テキスト (線、フリーフォーム、図、OLE オブジェクトなど) がサポートされていません。 これらのオブジェクトのレイアウト枠の中の文字列を制御するプロパティを取得または設定しようとすると、エラーが発生します。

レイアウト枠をリンクすると、特定の図形のレイアウト枠から他の図形のレイアウト枠へ文字列が流し込まれます。 テキスト フレームをリンクするには、 NextLinkedTextFrame プロパティと PreviousLinkedTextFrame プロパティを使用します。

次の例では、作業中の文書では、1 番目の図形のテキスト枠にテキストを追加し、新しいテキストの書式を設定します。

Sub AddTextToTextFrame() 
 With ActiveDocument.Pages(1).Shapes(1).TextFrame.TextRange 
 .Text = "My Text" 
 With .Font 
 .Bold = msoTrue 
 .Size = 25 
 .Name = "Arial" 
 End With 
 End With 
End Sub

次の例に示すように、 Shape.HasTextFrame プロパティを使用して図形にテキスト フレームがあるかどうかを判断し、 HasText プロパティを使用してテキスト フレームにテキストが含まれているかどうかを判断します。

Sub GetTextFromTextFrame() 
 Dim shpText As Shape 
 
 For Each shpText In ActiveDocument.Pages(1).Shapes 
 If shpText.HasTextFrame = msoTrue Then 
 With shpText.TextFrame 
 If .HasText Then MsgBox .TextRange.Text 
 End With 
 End If 
 Next 
End Sub

次の使用例は、テキスト ボックス (レイアウト枠を含む四角形) を作成し、文字列を追加します。 次に、別のテキスト ボックスを作成し、最初のレイアウト枠から 2 番目のレイアウト枠に文字列が流し込まれるように 2 つのレイアウト枠をリンクします。

Sub LinkTextBoxes() 
 Dim shpTextBox1 As Shape 
 Dim shpTextBox2 As Shape 
 
 Set shpTextBox1 = ActiveDocument.Pages(1).Shapes.AddTextbox _ 
 (msoTextOrientationHorizontal, 72, 72, 72, 36) 
 shpTextBox1.TextFrame.TextRange.Text = _ 
 "This is some text. This is some more text." 
 
 Set shpTextBox2 = ActiveDocument.Pages(1).Shapes.AddTextbox _ 
 (msoTextOrientationHorizontal, 72, 144, 72, 36) 
 shpTextBox1.TextFrame.NextLinkedTextFrame = shpTextBox2 _ 
 .TextFrame 
End Sub

メソッド

プロパティ

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。