Existe uma maneira mais simples ou efetiva de renomear marcadores em documentos do Word?
Não há função de renomeação incorporada ao Word. Existem algumas opções para contornar essa falta:
-
Use um suplemento.
-
Use o VBA.
Solução Add-in
Use o Add-In da Ferramenta de marcadores
It offers a friendly user interface for doing everything the standard Bookmark Dialog box will do plus much more.
Bookmark Tool was developed for Word 2003. It is wholly functional with Word 2007/2010.
...
With the "Add/Rename Bookmark" section, adding bookmarks is a breeze.
- As in the standard dialog, you simply select text, type a name in the field, and click "Add."
- Unlike the standard dialog, Bookmark Tool restricts key entry to valid bookmark name characters and alerts you if you attempt to create a duplicate bookmark name.
You can also use this section to rename an existing bookmark.
Fonte Complemento da Ferramenta de marcadores
Solução VBA
There isn't a rename function. You have to delete the old name and mark the range with a new bookmark name. Here's sample VBA code:
Sub ReNameBookMark()
Dim doc As Word.Document
Dim rng As Word.Range
Dim bmk As Word.Bookmark
Dim inpBookmark, repBookmark, fieldStr As String
Set doc = Word.ActiveDocument
inpBookmark = InputBox("Enter bookmark name that you want to be replaced:", "BookMark Replace")
repBookmark = InputBox("Enter bookmark name replace with:", "BookMark Replace")
Set rng = doc.Bookmarks(inpBookmark).Range
Set bmk = doc.Bookmarks(inpBookmark)
bmk.Delete
rng.Bookmarks.Add (repBookmark)
If doc.Fields.Count >= 1 Then
For i = 1 To doc.Fields.Count
fieldStr = doc.Fields(i).Code.Text
If Left(fieldStr, 4) = " REF" Then
doc.Fields(i).Code.Text = Replace(fieldStr, inpBookmark, repBookmark, , 1, vbTextCompare)
doc.Fields(i).Update
End If
'MsgBox "Code = " & doc.Fields(i).Code & vbCr & "Result = " & doc.Fields(i).Result & vbCr
Next i
End If
End Sub
Origem Altere o" nome "de um marcador não o texto dele , com um loop adicional para percorrer os campos no documento para alterar qualquer um que pode estar fazendo referência ao marcador que está sendo renomeado.
Cuidado deve ser tomado usando este script. Por exemplo, ao renomear qualquer marcador que seja simplesmente chamado de "REF" (ou uma variante de maiúscula ou minúscula) irá quebrar ALL referências de maneira divertida e inesperada. Isso serve apenas como um exemplo e uma correção aproximada.
Se quiser renomear em lote vários marcadores de uma só vez, consulte Is Existe uma maneira mais simples ou mais eficaz para renomear marcadores em documentos do Word? que também inclui código VBA de amostra.