Exporter (0) Imprimer
Développer tout
Développer Réduire

Comment : créer des signets dans les documents Word

Visual Studio .NET 2003

La collection Bookmarks existe comme membre des objets Document, Range et Selection. L'exemple de procédure suivant montre comment créer des signets dans un document Microsoft Office Word 2003 et les utiliser pour insérer du texte.

Pour créer des signets et insérer du texte

  1. Déclarez Range et deux variables Bookmark, puis affectez la valeur True à l'option ShowBookmarks.

    Ainsi, un Bookmark défini comme point d'insertion apparaît sous la forme d'un I gris et un Bookmark affecté à une plage de texte apparaît sous la forme de crochets gris entourant le texte marqué d'un signet.

    ' Visual Basic
    Friend Sub BookmarkCreate()
        Dim rng As Word.Range
        Dim bookMk1 As Word.Bookmark
        Dim bookMk2 As Word.Bookmark
    
        ' Display Bookmarks.
        ThisDocument.ActiveWindow.View.ShowBookmarks = True
    
    // C#
    private void BookmarkCreate() 
    { 
        Word.Bookmark bookMk1; 
        Word.Bookmark bookMk2; 
        object start = 0; 
        object end = 0; 
        Word.Range rng = ThisDocument.Range(ref start, ref end); 
        object objRng = rng; 
    
        // Display Bookmarks. 
        ThisDocument.ActiveWindow.View.ShowBookmarks = true;
    
  2. Définissez un objet Range comme premier point d'insertion au début du document.
    ' Visual Basic
        rng = ThisDocument.Range(Start:=0, End:=0)
    
    // C#
        object start = 0; 
        object end = 0; 
        Word.Range rng = ThisDocument.Range(ref start, ref end); 
    
  3. Ajoutez un Bookmark nommé bookMk1 constitué de l'objet Range et affichez un message pour arrêter l'exécution du code.

    À ce stade, Bookmark apparaît comme un I à peine visible à gauche du paragraphe.

    ' Visual Basic
        bookMk1 = ThisDocument.Bookmarks.Add( _
            Name:="bookMk1", Range:=CType(rng, Word.Range))
        MessageBox.Show("bookMk1 Text: " & bookMk1.Range.Text)
    
    // C#
        ThisDocument.ActiveWindow.View.ShowBookmarks = true; 
        bookMk1 = ThisDocument.Bookmarks.Add("bookMk1",ref objRng); 
        MessageBox.Show("bookMk1 Text: " + bookMk1.Range.Text);
    
  4. Utilisez la méthode InsertBefore de Range pour insérer le texte au niveau du Bookmark et interrompez le code avec un message.

    Notez que le texte est inséré après le Bookmark et n'est pas inclus dans celui-ci.

    ' Visual Basic
        rng.InsertBefore("**InsertBefore bookMk1**")
        MessageBox.Show("bookMk1 Text: " & bookMk1.Range.Text)
    
    // C#
        rng.InsertBefore("**InsertBefore bookMk1**"); 
        MessageBox.Show("bookMk1 Text: " + bookMk1.Range.Text);
    
  5. Utilisez la méthode InsertAfter de Range pour insérer le texte après le Bookmark. Notez que le texte inséré apparaît directement après le texte qui a été inséré avant le Bookmark.
    ' Visual Basic
        rng.InsertAfter("**InsertAfter bookMk1**")
        MessageBox.Show("bookMk1 Text: " & bookMk1.Range.Text)
    
    // C#
        rng.InsertAfter("**InsertAfter bookMk1**"); 
        MessageBox.Show("bookMk1 Text: " + bookMk1.Range.Text); 
    
  6. Réinitialisez l'objet Range afin de pointer vers le deuxième paragraphe du document et créez un objet Bookmark nommé bookMk2 sur le deuxième paragraphe.

    Lorsque le code s'interrompt pour afficher le message, vous pouvez voir les crochets Bookmark entourant le deuxième paragraphe.

    ' Visual Basic
        rng = ThisDocument.Paragraphs(2).Range
        bookMk2 = ThisDocument.Bookmarks.Add( _
            Name:="bookMk2", Range:=CType(rng, Word.Range))
        MessageBox.Show("bookMk2 Text: " & bookMk2.Range.Text, _
            "bookMk2 set")
    
    // C#
        rng = ThisDocument.Paragraphs[2].Range; 
        bookMk2 = ThisDocument.Bookmarks.Add("bookMk2", ref objRng); 
        MessageBox.Show("bookMk2 Text: " + bookMk2.Range.Text,
            "bookMk2 set");
    
  7. Utilisez InsertBefore pour insérer le texte avant le Bookmark.
    ' Visual Basic
        rng.InsertBefore("**InsertBefore bookMk2**")
        MessageBox.Show("bookMk2 Text: " & bookMk2.Range.Text, _
            "InsertBefore bookMk2")
    
    // C#
        rng.InsertBefore("**InsertBefore bookMk2**"); 
        MessageBox.Show("bookMk2 Text: " + bookMk2.Range.Text,
            "InsertBefore bookMk2");
    
  8. Utilisez InsertAfter pour insérer le texte après le Bookmark.

    Notez que ce texte est inséré en dehors du Bookmark et n'est pas inclus dans celui-ci.

    ' Visual Basic
        rng.InsertAfter("**InsertAfter bookMk2**")
        MessageBox.Show("bookMk2 Text: " & bookMk2.Range.Text, _
            "InsertAfter bookMk2")
    
        bookMk2.Select()
        MessageBox.Show("bookMk2.Select()")
    
    // C#
        rng.InsertAfter("**InsertAfter bookMk2**"); 
        MessageBox.Show("bookMk2 Text: " + bookMk2.Range.Text,
            "InsertAfter bookMk2"); 
    
        bookMk2.Select(); 
        MessageBox.Show("bookMk2.Select()");
    
  9. Supprimez les Bookmarks.
    ' Visual Basic
        bookMk1.Delete()
        bookMk2.Delete()
    End Sub
    
    // C#
    bookMk1.Delete(); 
    bookMk2.Delete(); 
    }
    

La méthode complète se présente comme suit :

' Visual Basic
Friend Sub BookmarkCreate()
    Dim rng As Word.Range
    Dim bookMk1 As Word.Bookmark
    Dim bookMk2 As Word.Bookmark

    ' Display Bookmarks.
    ThisDocument.ActiveWindow.View.ShowBookmarks = True
    rng = ThisDocument.Range(Start:=0, End:=0)
    bookMk1 = ThisDocument.Bookmarks.Add( _
        Name:="bookMk1", Range:=CType(rng, Word.Range))
    MessageBox.Show("bookMk1 Text: " & bookMk1.Range.Text)
    rng.InsertBefore("**InsertBefore bookMk1**")
    MessageBox.Show("bookMk1 Text: " & bookMk1.Range.Text)
    rng.InsertAfter("**InsertAfter bookMk1**")
    MessageBox.Show("bookMk1 Text: " & bookMk1.Range.Text)
    rng = ThisDocument.Paragraphs(2).Range
    bookMk2 = ThisDocument.Bookmarks.Add( _
        Name:="bookMk2", Range:=CType(rng, Word.Range))
    MessageBox.Show("bookMk2 Text: " & bookMk2.Range.Text, _
        "bookMk2 set")
    rng.InsertBefore("**InsertBefore bookMk2**")
    MessageBox.Show("bookMk2 Text: " & bookMk2.Range.Text, _
        "InsertBefore bookMk2")
    rng.InsertAfter("**InsertAfter bookMk2**")
    MessageBox.Show("bookMk2 Text: " & bookMk2.Range.Text, _
        "InsertAfter bookMk2")

    bookMk2.Select()
    MessageBox.Show("bookMk2.Select()")
    bookMk1.Delete()
    bookMk2.Delete()
End Sub

// C#
private void BookmarkCreate() 
{ 
    Word.Bookmark bookMk1; 
    Word.Bookmark bookMk2; 
    object start = 0; 
    object end = 0; 
    Word.Range rng = ThisDocument.Range(ref start, ref end); 
    object objRng = rng; 

    // Display Bookmarks. 
    ThisDocument.ActiveWindow.View.ShowBookmarks = true; 
    bookMk1 = ThisDocument.Bookmarks.Add("bookMk1",ref objRng); 
    MessageBox.Show("bookMk1 Text: " + bookMk1.Range.Text); 
    rng.InsertBefore("**InsertBefore bookMk1**"); 
    MessageBox.Show("bookMk1 Text: " + bookMk1.Range.Text); 
    rng.InsertAfter("**InsertAfter bookMk1**"); 
    MessageBox.Show("bookMk1 Text: " + bookMk1.Range.Text); 
    rng = ThisDocument.Paragraphs[2].Range; 
    bookMk2 = ThisDocument.Bookmarks.Add("bookMk2", ref objRng); 
    MessageBox.Show("bookMk2 Text: " + bookMk2.Range.Text, "bookMk2 set"); 
    rng.InsertBefore("**InsertBefore bookMk2**"); 
    MessageBox.Show("bookMk2 Text: " + bookMk2.Range.Text,
        "InsertBefore bookMk2"); 
    rng.InsertAfter("**InsertAfter bookMk2**"); 
    MessageBox.Show("bookMk2 Text: " + bookMk2.Range.Text,
        "InsertAfter bookMk2"); 

    bookMk2.Select(); 
    MessageBox.Show("bookMk2.Select()"); 
    bookMk1.Delete(); 
    bookMk2.Delete(); 
}

Voir aussi

Word, objet Bookmark | Word, objet Selection | Word, objet Range | Comment : réduire des plages ou des sélections | Comment : étendre des plages | Comment : insérer du texte dans un document Word | Word, objet Document | Automatisation de Word à l'aide du modèle objet Word

Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft