Objet TextFrame (Publisher)

Représente le cadre de texte dans un objet Shape. Contient le texte dans le cadre de texte et les propriétés qui contrôlent les marges et l'orientation du cadre de texte.

Remarques

Utilisez la propriété Shape.TextFrame pour renvoyer l’objet TextFrame d’une forme.

La propriété TextRange renvoie un objet TextRange qui représente la plage de texte à l’intérieur du cadre de texte spécifié.

Remarque

Certaines formes ne prennent pas en charge le texte attaché (lignes, formes libres, images et objets OLE, par exemple). Si vous tentez de renvoyer ou de définir des propriétés qui contrôlent le texte d'un cadre de texte avec ces types de formes, une erreur se produit.

Vous pouvez lier ensemble des cadres de texte de façon à ce que le texte d'un cadre de texte d'une forme s'enchaîne à celui d'une autre forme. Utilisez l' NextLinkedTextFrame et PreviousLinkedTextFrame propriétés pour lier des cadres de texte.

Exemple

L'exemple suivant ajoute du texte dans le cadre de texte de la forme 1 dans la composition active, puis met en forme le nouveau texte.

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

Utilisez la propriété Shape.HasTextFrame pour déterminer si la forme a un cadre de texte, et utilisez la propriété HasText pour déterminer si le cadre de texte contient du texte, comme illustré dans l’exemple suivant.

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

L'exemple suivant montre comment créer une zone de texte (un rectangle avec un cadre de texte) et y insérer du texte. Il montre également comment créer une autre zone de texte et lier les deux cadres de texte de sorte que le texte du premier cadre de texte s'enchaîne au second.

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

Méthodes

Propriétés

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.