Classe Bookmark - signet (Word VBA)

La classe Bookmark représente un seul signet d'un document, une sélection ou une plage.

Pour utiliser une variable de classe Bookmark, elle doit d'abord être instanciée, par exemple

Dim bkm as Bookmark
Set bkm = ActiveDocument.Bookmarks(Index:=1)

Les procédures suivantes peuvent être utilisés pour définir des variables de la classe Bookmark : Copy, Bookmarks.Add et Bookmarks.Item.

For Each

Voici un exemple de traitement des éléments Bookmark dans une collection

Dim bkm As Bookmark
For Each bkm In ActiveDocument.Bookmarks
	
Next bkm

Column

True si le signet spécifié est une colonne de table.

Dim docNew As Document 
Dim tableNew As Table 
Dim rangeCell As Range 
 
Set docNew = Documents.Add 
Set tableNew = docNew.Tables.Add(Selection.Range, 3, 5) 
Set rangeCell = tableNew.Cell(3,5).Range 
 
rangeCell.InsertAfter "Cell(3,5)" 
docNew.Bookmarks.Add Name:="BKMK_Cell35", Range:=rangeCell 
MsgBox docNew.Bookmarks(1).Column

Copy

Copie un signet vers le nouveau signet spécifié dans l’argument nom et renvoie un objet Bookmark .

Copy (Name)

Name: Nom du nouveau signet.

Dim strName As String: strName =  
Dim bkmCopy As Bookmark
Set bkmCopy = ActiveDocument.Bookmarks(1).Copy(Name:=strName)

Delete

Supprime le signet spécifié.

Sub DeleteBookmark() 
 Dim intResponse As Integer 
 Dim strBookmark As String 
 
 strBookmark = "temp" 
 
 intResponse = MsgBox("Are you sure you want to delete " _ 
 & "the bookmark named """ & strBookmark & """?", vbYesNo) 
 
 If intResponse = vbYes Then 
 If ActiveDocument.Bookmarks.Exists(Name:=strBookmark) Then 
 ActiveDocument.Bookmarks(Index:=strBookmark).Delete 
 End If 
 End If 
End Sub

Empty

True si le signet spécifié est vide.

Un signet vide marque un emplacement (une sélection réduite) ; il ne marque aucun texte.

If ActiveDocument.Bookmarks.Exists("temp") = True Then 
 If ActiveDocument.Bookmarks("temp").Empty = True Then _ 
 MsgBox "The Temp bookmark is empty" 
End If

End

Cette propriété renvoie ou définit la position du caractère de fin d'une sélection, une plage ou un signet.

Si cette propriété est définie sur une valeur inférieure à la propriété Start, la propriété Start est définie sur la même valeur (autrement dit, les propriétés de fin et de début sont identiques). Cette propriété renvoie l'emplacement du caractère de fin par rapport au début de l'article.

Set Book1 = ActiveDocument.Bookmarks("begin") 
Set Book2 = ActiveDocument.Bookmarks("temp") 
If Book2.End > Book1.Start Then Book1.Select

Name

Renvoie le nom de l'objet spécifié.

Dim strName As String
strName = ActiveDocument.Bookmarks(1).Name

Range

Renvoie un objet Range qui représente la partie d'un document contenue dans l'objet spécifié.

Pour plus d'informations sur le renvoi d'une plage à partir d'un document ou le renvoi d'une plage de formes à partir d'une collection de formes, voir la méthode Range.

Dim rngRange As Range
Set rngRange = ActiveDocument.Bookmarks(1).Range

Select

Sélectionne le signet spécifié.

Après avoir exécuté cette méthode, utilisez l'objet Selection pour travailler avec les éléments sélectionnés.

ActiveDocument.Bookmarks(1).Select

Start

Cette propriété renvoie ou définit la position du caractère de départ d'un signet.

Si cette propriété est définie sur une valeur supérieure à celle de la propriété End, la propriété End est définie sur la même valeur que celle de la propriété Start. Les objets Bookmark disposent de positions de caractères de début et de fin. Cette propriété renvoie la position du caractère de début par rapport au début de l'article.

Set Book1 = ActiveDocument.Bookmarks("begin") 
Set Book2 = ActiveDocument.Bookmarks("temp") 
If Book2.End > Book1.Start Then Book1.Select

StoryType

Renvoie le type d'article pour la plage, la sélection ou le signet spécifié. Ici on trouve valeurs possible pour WdStoryType.

If ActiveDocument.Bookmarks.Exists("temp") = True Then 
 Set myBookmark = ActiveDocument.Bookmarks("temp") 
 If myBookmark.StoryType = wdMainTextStory _ 
 Then myBookmark.Select 
End If