Ridenominazione di un segnalibro in Word 2010

Utilizzo spesso dei segnalibri in Word per creare documenti tecnici con collegamenti interni alle citazioni e informazioni comunemente utilizzate che devono essere coerenti in tutto il documento. Puoi crearli selezionando il text e passando al menu Insert -> Links -> Bookmark e assegnando un nome, poi andando a Insert -> Links -> Citations e selezionando il segnalibro da inserire. Questo inserirà il text di quel segnalibro altrove nel documento.

Come esempio di perché faccio questo: spesso ho una pagina frontale che elenca lo stato del documento e che le informazioni vengono poi ripetute nel piè di pagina, utilizzando un segnalibro che posso impostare un collegamento a quel text e poi inserirlo nel piè di pagina e verrà aggiornato automaticamente each volta che vado all'anteprima di printing o aggiorniamo tutti i campi del documento. In questo modo posso evitare di fare una ricerca e sostituire e sapere solo che il text corretto verrà aggiornato nei luoghi corretti.

immettere qui la descrizione dell'immagine

Ora diciamo che ho un segnalibro che ho appena nominato approssimativamente, solo per farlo:
immettere qui la descrizione dell'immagine

Non esiste un clic con il button destro per rinominare un segnalibro e non riesco a trovare qualsiasi properties; di documento che mi permetta di modificarla.

Posso inserire un NUOVO segnalibro selezionando lo stesso text e poi eliminando quello vecchio, ma otterrai questo:
immettere qui la descrizione dell'immagine

Devi quindi fare clic destro sul field e rimetterlo indietro al segnalibro (ora effettivamente rinominato).

Questo non è completamente utilizzabile, soprattutto in un grande documento in cui questo segnalibro viene utilizzato più volte.

Ho girato in giro e ho visto diversi script VBA sul web come in questa domanda, ma in quanto creano in modo efficace un nuovo boomark e cancellano quello vecchio creano lo stesso problema di cui sopra e sono less che ideali.

C'è un modo più semplice o più efficace per rinominare i segnalibri nei documenti di Word? Oppure sto utilizzando il Wrong Tool ™ per questo lavoro?

C'è un modo più semplice o più efficace per rinominare i segnalibri nei documenti di Word?

Non esiste alcuna function di ridenominazione incorporata in Word. Ci sono un paio di opzioni per aggirare questa mancanza:

  1. Utilizza un componente aggiuntivo.

  2. Utilizzare VBA.


Soluzione aggiuntiva

Utilizza lo strumento aggiuntivo per i segnalibri

Offre un'interface utente amichevole per fare tutto ciò che fa la window di dialogo Segnalibri standard e molto di più.

Strumento di segnalibri è stato sviluppato per Word 2003. È completamente funzionale con Word 2007/2010.

Con la sezione "Aggiungi / Rinomina segnalibri", aggiungendo segnalibri è una brezza.

  • Come nella window di dialogo standard, è sufficiente select il text, digitare un nome nel field e fare clic su "Aggiungi".
  • A differenza della window di dialogo standard, lo strumento Segnalibri limita la voce di chiave ai caratteri di nome del bookmark validi e ti avvisa se si tenta di creare un nome di segnalibro duplicato.
  • È inoltre ansible utilizzare questa sezione per rinominare un segnalibro esistente.

    immettere qui la descrizione dell'immagine

Strumento di aggiunta di segnalibri di origine


Soluzione VBA

Non esiste una function di ridenominazione. Devi eliminare il vecchio nome e contrassegnare l'intervallo con un nuovo nome del segnalibro. Ecco il codice VBA di esempio:

 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 

Fonte Cambiare il "nome" di un segnalibro non il suo text , con un ciclo aggiuntivo per eseguire i campi nel documento per modificare eventuali riferimenti al segnalibro che viene rinominato.

Si dovrebbe prestare attenzione a questo script. Ad esempio rinominare tutti i segnalibri che sono semplicemente denominati "REF" (o una variante superiore o minuscola di tali) romperanno TUTTI i riferimenti in modi divertenti e inaspettati. Questo è inteso come un esempio e solo la correzione ruvida.

Se si desidera raggruppare rinominare più segnalibri in una sola volta, vedere C'è un modo più semplice o più efficace per rinominare i segnalibri nei documenti di Word? che include anche il codice VBA di esempio.