Clase Bookmark - marcador (Word VBA)

La clase Bookmark representa un solo marcador en un documento, selección o rango.

Para usar una variable de clase Bookmark, primero debe ser instanciado, por ejemplo

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

Los siguientes procedimientos se pueden usar para establecer variables de clase Bookmark : Copy, Bookmarks.Add y Bookmarks.Item.

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos Bookmark en una colección.

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

Column

True si el marcador especificado es una columna de tabla.

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

Copia un marcador en el nuevo marcador especificado en el argumento Name y devuelve un objeto Bookmark .

Copy (Name)

Name: Nombre del nuevo marcador.

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

Delete

Elimina el marcador especificado.

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 el marcador especificado está vacío.

Un marcador vacío señala una ubicación (una selección contraída); no marca ningún texto.

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

End

Devuelve o establece la posición del carácter final de una selección, intervalo o marcador.

Si esta propiedad se establece en un valor menor que la propiedad Start, la propiedad Start se establece en el mismo valor (es decir, el Inicio de propiedades y End son iguales). Esta propiedad devuelve la posición del carácter final con relación al inicio del artículo.

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

Name

Devuelve el nombre del objeto especificado.

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

Range

Devuelve un objeto Range que representa la parte de un documento que está contenida en el objeto especificado.

Para obtener información acerca de la devolución de un intervalo de un documento o la devolución de un intervalo de formas de una colección de formas, vea el método Range.

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

Select

Selecciona el marcador especificado.

Después de utilizar este método, utilice el objeto Selection para trabajar con los elementos seleccionados.

ActiveDocument.Bookmarks(1).Select

Start

Devuelve o establece la posición del carácter inicial de un marcador.

Si esta propiedad se establece en un valor superior de la propiedad End, dicha propiedad End se establece en el mismo valor que el de la propiedad Start. Los objetos Bookmark tienen posiciones de carácter inicial y final. Esta propiedad devuelve la posición del carácter inicial relativa al inicio del artículo.

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

StoryType

Devuelve el tipo de artículo del intervalo, la selección o el marcador especificado. Aquí puede ver valores posibles para WdStoryType.

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