Partager via


Comment : insérer du texte dans les documents Word par programmation

Il existe trois méthodes principales pour insérer du texte dans des documents Microsoft Office Word :

  • Insérer du texte dans une plage.

  • Remplacer du texte dans une plage.

  • Utilisez la méthode TypeText d'un objet Selection pour insérer le texte au niveau du curseur ou de la sélection.

[!REMARQUE]

Vous pouvez également insérer du texte dans des contrôles de contenu et des signets.Pour plus d'informations, consultez Contrôles de contenu et Bookmark, contrôle.

S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau document et de niveau application pour Word 2013 et Word 2010. Pour en savoir plus, consultez Fonctionnalités disponibles par type d'application et de projet Office.

Insertion de texte dans une plage

Utilisez la propriété Text d'un objet Range pour insérer du texte dans un document.

Pour insérer du texte dans une plage

  1. Spécifiez une plage au début d'un document et insérez le texte Nouveau texte.

    L'exemple de code suivant peut être utilisé dans une personnalisation au niveau du document.

    Dim rng As Word.Range = Me.Range(Start:=0, End:=0)
    rng.Text = " New Text "
    
    object start = 0; 
    object end = 0; 
    
    Word.Range rng = this.Range(ref start, ref end); 
    rng.Text = "New Text"; 
    

    L'exemple de code suivant peut être utilisé dans un complément d'application.Ce code utilise le document actif.

    Dim rng As Word.Range = Me.Application.ActiveDocument.Range(Start:=0, End:=0)
    rng.Text = " New Text "
    
    Word.Range rng = this.Application.ActiveDocument.Range(0, 0);
    rng.Text = "New Text";
    
  2. Sélectionnez l'objet Range, qui s'est développé d'un caractère jusqu'à la longueur du texte inséré.

    rng.Select()
    
    rng.Select();
    

Remplacement de texte dans une plage

Si la plage spécifiée contient du texte, tout le texte dans la plage est remplacé par le texte inséré.

Pour remplacer du texte dans une plage

  1. Créez un objet Range qui se compose des 12 premiers caractères du document.

    L'exemple de code suivant peut être utilisé dans une personnalisation au niveau du document.

    Dim rng As Word.Range = Me.Range(Start:=0, End:=12)
    
    object start = 0; 
    object end = 12; 
    
    Word.Range rng = this.Range(ref start, ref end); 
    

    L'exemple de code suivant peut être utilisé dans un complément d'application.Ce code utilise le document actif.

    Dim rng As Word.Range = Me.Application.ActiveDocument.Range(Start:=0, End:=12)
    
    Word.Range rng = this.Application.ActiveDocument.Range(0, 12);
    
  2. Remplacez ces caractères par la chaîne Nouveau texte.

    rng.Text = " New Text "
    
    rng.Text = "New Text"; 
    
  3. Sélectionnez la plage.

    rng.Select()
    
    rng.Select();
    

Insertion de texte à l'aide de TypeText

La méthode TypeText insère le texte à la sélection.TypeText se comporte différemment selon le jeu d'options sur l'ordinateur de l'utilisateur.Le code de la procédure suivante déclare une variable objet Selection et désactive l'option Overtype si elle est activée.Si l'option Overtype est activée, tout texte à proximité du curseur est remplacé.

Pour insérer du texte à l'aide de la méthode TypeText

  1. Déclarez une variable objet Selection.

    Dim currentSelection As Word.Selection = Application.Selection
    
    Word.Selection currentSelection = Application.Selection; 
    
  2. Désactivez l'option Overtype si elle est activée.

    If Application.Options.Overtype Then
        Application.Options.Overtype = False
    End If
    
    if (Application.Options.Overtype) 
    { 
        Application.Options.Overtype = false; 
    } 
    
  3. Faites un test pour voir si la sélection actuelle est un point d'insertion.

    Si tel est le cas, le code insère une phrase à l'aide de TypeText, puis une marque de paragraphe à l'aide de la méthode TypeParagraph.

    With currentSelection
    
        ' Test to see if selection is an insertion point.
        If .Type = Word.WdSelectionType.wdSelectionIP Then
            .TypeText("Inserting at insertion point. ")
            .TypeParagraph()
    
    // Test to see if selection is an insertion point.
    if (currentSelection.Type == Word.WdSelectionType.wdSelectionIP) 
    { 
        currentSelection.TypeText("Inserting at insertion point. ");
        currentSelection.TypeParagraph(); 
    } 
    
  4. Le code dans le bloc ElseIf procède à un test pour voir si la sélection est une sélection normale.Si c'est le cas, un autre bloc If procède à un test pour voir si l'option ReplaceSelection est activée.Si tel est le cas, le code utilise la méthode Collapse de la sélection pour réduire la sélection à un point d'insertion au début du bloc de texte sélectionné.Insérez le texte et une marque de paragraphe.

    ElseIf .Type = Word.WdSelectionType.wdSelectionNormal Then
        ' Move to start of selection.
        If Application.Options.ReplaceSelection Then
            .Collapse(Direction:=Word.WdCollapseDirection.wdCollapseStart)
        End If
        .TypeText("Inserting before a text block. ")
        .TypeParagraph()
    
    else 
        if (currentSelection.Type == Word.WdSelectionType.wdSelectionNormal)
        { 
            // Move to start of selection.
            if (Application.Options.ReplaceSelection)
            { 
                object direction = Word.WdCollapseDirection.wdCollapseStart;
                currentSelection.Collapse(ref direction);
            }
            currentSelection.TypeText("Inserting before a text block. ");
            currentSelection.TypeParagraph();
        }
    
  5. Si la sélection n'est pas un point d'insertion ou un bloc de texte sélectionné, le code dans le bloc Else ne fait rien.

    Else
        ' Do nothing.
    End If
    
    else
    {
        // Do nothing.
    }
    

Vous pouvez également utiliser la méthode TypeBackspace de l'objet Selection, qui reproduit la fonctionnalité de la touche Retour arrière de votre clavier.Cependant, lorsqu'il s'agit d'insérer et de manipuler du texte, l'objet Range vous offre plus de contrôle.

L'exemple suivant montre le code complet.Pour utiliser cet exemple, exécutez le code à partir de la classe ThisDocument ou ThisAddIn dans votre projet.

Friend Sub SelectionInsertText()
    Dim currentSelection As Word.Selection = Application.Selection

    ' Store the user's current Overtype selection
    Dim userOvertype As Boolean = Application.Options.Overtype

    ' Make sure Overtype is turned off.
    If Application.Options.Overtype Then
        Application.Options.Overtype = False
    End If

    With currentSelection

        ' Test to see if selection is an insertion point.
        If .Type = Word.WdSelectionType.wdSelectionIP Then
            .TypeText("Inserting at insertion point. ")
            .TypeParagraph()

        ElseIf .Type = Word.WdSelectionType.wdSelectionNormal Then
            ' Move to start of selection.
            If Application.Options.ReplaceSelection Then
                .Collapse(Direction:=Word.WdCollapseDirection.wdCollapseStart)
            End If
            .TypeText("Inserting before a text block. ")
            .TypeParagraph()

        Else
            ' Do nothing.
        End If
    End With

    ' Restore the user's Overtype selection
    Application.Options.Overtype = userOvertype
End Sub
private void SelectionInsertText() 
{ 
    Word.Selection currentSelection = Application.Selection; 

    // Store the user's current Overtype selection
    bool userOvertype = Application.Options.Overtype;

    // Make sure Overtype is turned off.
    if (Application.Options.Overtype) 
    { 
        Application.Options.Overtype = false; 
    } 

    // Test to see if selection is an insertion point.
    if (currentSelection.Type == Word.WdSelectionType.wdSelectionIP) 
    { 
        currentSelection.TypeText("Inserting at insertion point. ");
        currentSelection.TypeParagraph(); 
    } 
    else 
        if (currentSelection.Type == Word.WdSelectionType.wdSelectionNormal)
        { 
            // Move to start of selection.
            if (Application.Options.ReplaceSelection)
            { 
                object direction = Word.WdCollapseDirection.wdCollapseStart;
                currentSelection.Collapse(ref direction);
            }
            currentSelection.TypeText("Inserting before a text block. ");
            currentSelection.TypeParagraph();
        }
        else
        {
            // Do nothing.
        }

    // Restore the user's Overtype selection
    Application.Options.Overtype = userOvertype;
}

Voir aussi

Tâches

Comment : mettre en forme du texte dans des documents par programmation

Comment : définir et sélectionner des plages dans les documents par programmation

Comment : étendre des plages dans des documents par programmation