Lire en anglais

Partager via


Modification d'une partie d'un document

Visual Basic inclut des objets que vous pouvez utiliser pour modifier les éléments de document suivants : caractères, mots, phrases, paragraphes et sections. Le tableau ci-dessous indique les propriétés qui correspondent à ces éléments et les objets qu'elles renvoient.

Cette expression Renvoie cet objet
Mots ( index) Range
Caractères ( index) Range
Phrases ( index) Range
Paragraphes ( index) Paragraphe
Sections ( index) Section

Lorsque ces propriétés sont utilisées sans index, la collection d’objets du même nom est renvoyée. Par exemple, la propriété Paragraphs renvoie l’objet de collection Paragraphs . Cependant, si vous identifiez un élément au sein de ces collections au moyen de l’index, l’objet figurant dans la deuxième colonne du tableau est renvoyé. Par exemple, Words(1) retourne un objet Range . Une fois que vous disposez d’un objet Range, vous pouvez utiliser les propriétés ou méthodes des objets Range pour modifier l’objet. Par exemple, l’instruction ci-dessous copie le premier mot de la sélection dans le Presse-papiers.

Sub CopyWord() 
    Selection.Words(1).Copy 
End Sub

Note Les éléments des collections Paragraphs et Sections sont des formes singulières de la collection, en particulier les objets Paragraph et Section , plutôt que les objets Range . En fait, la plupart des collections du modèle objet Word ont des objets de formulaire singuliers avec lesquels vous pouvez travailler. Toutefois, la propriété Range (qui renvoie un objet Range) est disponible à partir des objets Paragraph et Section et à partir de la plupart des objets enfants des collections. Par exemple, l’instruction ci-dessous copie le premier paragraphe du document actif dans le Presse-papiers.

Sub CopyParagraph() 
    ActiveDocument.Paragraphs(1).Range.Copy 
End Sub

Toutes les propriétés des éléments de document figurant dans le tableau ci-dessus sont disponibles à partir des objets Document, Selection et Range. Les exemples suivants montrent comment vous pouvez explorer ces propriétés à partir d’objets Document, Selection et Range . Cet exemple montre comment définir la casse du premier mot du document actif.

Sub ChangeCase() 
    ActiveDocument.Words(1).Case = wdUpperCase 
End Sub

Cet exemple montre comment affecter la valeur de 0,5 pouce (1,27 centimètres) à la marge du bas dans la section active.

Sub ChangeSectionMargin() 
    Selection.Sections(1).PageSetup.BottomMargin = InchesToPoints(0.5) 
End Sub

L’exemple suivant montre comment doublement espacer le texte du document actif (la propriété Content renvoie un objet Range ).

Sub DoubleSpaceDocument() 
    ActiveDocument.Content.ParagraphFormat.Space2 
End Sub

Modification d'un groupe d'éléments de document

Pour modifier une plage de texte constituée d'un groupe d'éléments de document (caractères, mots, phrases, paragraphes ou sections), vous devez créer un objet Range. La méthode Range crée un objet Range en fonction d'un point de départ et d'un point d'arrivée. Par exemple, l'instruction ci-dessous crée un objet Range qui fait référence aux dix premiers caractères du document actif.

Sub SetRangeForFirstTenCharacters() 
    Dim rngTenCharacters As Range 
    Set rngTenCharacters = ActiveDocument.Range(Start:=0, End:=10) 
End Sub

À l’aide des propriétés Start et End avec un objet Range , vous pouvez créer un objet Range qui fait référence à un groupe d’éléments de document. Par exemple, l’instruction suivante crée un objet Range ( rngThreeWords) qui fait référence aux trois premiers mots du document actif.

Sub SetRangeForFirstThreeWords() 
    Dim docActive As Document 
    Dim rngThreeWords As Range 
    Set docActive = ActiveDocument 
    Set rngThreeWords = docActive.Range(Start:=docActive.Words(1).Start, _ 
        End:=docActive.Words(3).End) 
End Sub

L’exemple suivant crée un objet Range ( rngParagraphs) en commençant au début du deuxième paragraphe et se terminant après le troisième paragraphe.

Sub SetParagraphRange() 
    Dim docActive As Document 
    Dim rngParagraphs As Range 
    Set docActive = ActiveDocument 
    Set rngParagraphs = docActive.Range(Start:=docActive.Paragraphs(2).Range.Start, _ 
        End:=docActive.Paragraphs(3).Range.End) 
End Sub

Pour plus d’informations sur la définition d’objets Range, voir Utilisation des objets Range.

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.