Rinominare un segnalibro in Word 2010


11

Uso spesso i segnalibri in Word per creare documenti tecnici con collegamenti interni a citazioni e informazioni di uso comune che devono essere coerenti in tutto il documento. Puoi crearli selezionando il testo e poi andando al menu Insert - & gt; Links - & gt; Bookmark e assegnando un nome, quindi andando a Insert - & gt; Links - & gt; Citations e selezionando il segnalibro da inserire. Ciò inserirà quindi il testo di quel segnalibro altrove nel documento.

Come esempio del perché lo faccio: spesso ho una prima pagina che elenca lo stato del documento e le informazioni sono poi ripetute nel footer, usando un segnalibro posso impostare un link a quel testo e poi semplicemente inserire quel link nel footer e si aggiornerà automaticamente ogni volta che vado all'anteprima di stampa o aggiorno tutti i campi nel documento. In questo modo posso evitare di fare una ricerca e sostituirla e so solo che il testo corretto verrà aggiornato nei posti corretti.

enter image description here

Ora diciamo che ho un segnalibro che ho appena chiamato per nome, solo per metterlo in posizione:
enter image description here

Non è possibile fare clic con il pulsante destro del mouse per rinominare un segnalibro e non riesco a trovare alcuna proprietà del documento che consenta di modificarlo.

Sono in grado di inserire un NUOVO segnalibro selezionando lo stesso testo e quindi eliminando quello vecchio ma poi si ottiene questo:
enter image description here

Devi quindi fare clic con il pulsante destro del mouse sul campo e puntarlo nuovamente al segnalibro (ora rinominato in modo efficace).

Questo non è completamente utilizzabile, specialmente in un documento di grandi dimensioni in cui questo segnalibro viene utilizzato più volte.

Ho cercato su Google e ho visto diversi script VBA sul web come in questa domanda ma poiché creano effettivamente un nuovo segnalibro ed eliminano quello vecchio, creano lo stesso problema di cui sopra e sono tutt'altro che ideali.

C'è un modo più semplice o più efficace per rinominare i segnalibri nei documenti di Word? O sto forse usando lo strumento Wrong ™ per questo lavoro?


Intendevi Word 2013, invece del 2010?
Greek - Area 51 Proposal

@LePressentiment la mia copia di Word è il 2010, ma non vedo perché la risposta qui sotto non si applicherebbe al 2013 a meno che non abbiano revisionato in modo significativo la funzione di bookmarking tra le versioni. Sarei davvero sorpreso se lo facessero.
Mokubai

@LePressentiment Vedi la mia risposta che è stata aggiornata da Mokubai.
DavidPostill

Risposte:


6

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

Non esiste una funzione di rinomina incorporata in Word. Ci sono un paio di opzioni per ovviare a questa mancanza:

  1. Utilizzare un componente aggiuntivo.

  2. Usa VBA.


Soluzione aggiuntiva

Utilizzare il Componente aggiuntivo del segnalibro

Offre un'interfaccia utente amichevole per fare tutto lo standard   La finestra di dialogo dei segnalibri farà molto di più.

Bookmark Tool è stato sviluppato per Word 2003. È completamente funzionale   con Word 2007/2010.

...

Con la sezione "Aggiungi / rinomina segnalibro", l'aggiunta di segnalibri è un gioco da ragazzi.

  • Come nella finestra di dialogo standard, è sufficiente selezionare il testo, digitare un nome nel campo e fare clic su "Aggiungi".
  • A differenza della finestra di dialogo standard, lo Strumento segnalibri limita l'immissione della chiave ai caratteri del nome del segnalibro valido e avvisa l'utente se si tenta di creare   un nome duplicato del segnalibro.
  • Puoi anche usare questa sezione per rinominare un segnalibro esistente.

    enter image description here

fonte Componente aggiuntivo del segnalibro


Soluzione VBA

Non c'è una funzione di rinomina. È necessario eliminare il vecchio nome e contrassegnare l'intervallo con un nuovo nome del segnalibro. Ecco un 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 Cambia il "nome" di un segnalibro, non il testo di esso , con un ciclo aggiuntivo per scorrere i campi del documento per modificare quelli che potrebbero far riferimento al segnalibro che viene rinominato.

Si dovrebbe prestare attenzione usando questo script. Ad esempio rinominare tutti i segnalibri che sono semplicemente denominati "REF" (o una variante maiuscola o minuscola di tali) volontà rompere TUTTI riferimenti in modi divertenti e inaspettati. Questo è solo un esempio e una soluzione approssimativa.

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


@Mokubai Sembra che tu possa essere in grado di farlo con il componente aggiuntivo (vedi la risposta aggiornata)? Purtroppo non ho una copia di Word da testare con ...
DavidPostill

Darò l'addin un test al mattino quando torno al mio PC. Probabilmente va bene per casa, ma al lavoro non credo che potrò usarlo perché il nostro reparto IT può essere un po 'diffidente nei confronti di quel genere di cose. Proverò entrambi i metodi e vedere se posso migliorare il tuo script VBA per fare la ricerca e la sostituzione. Se arrivo da qualche parte e va bene per te, vorrei modificarlo nella tua risposta.
Mokubai

@LePressentiment Nel caso in cui sia un aiuto per quello che vuoi, ho aggiunto alcune funzionalità allo script VBA sopra per darti una casella di input per i nomi attuali e nuovi, e ho fatto una ricerca sporca e ho sostituito campi che si riferiscono a quei segnalibri. Non è perfetto, ma è meglio di niente e sarà più che adatto a quello che devo fare al lavoro.
Mokubai

1

Ho avuto questo stesso problema e sono incappato in questo lavoro intorno / soluzione.

Per il testo a cui vuoi fare riferimento, un titolo nel mio caso, imposta un titolo di proprietà del documento come segue:

Insert tabQuick PartsDocument PropertyTitle

Questo aggiunge una casella modificabile per il testo in cui è possibile digitare il titolo.

Quindi, per farvi riferimento, potreste semplicemente andare Insert tabQuick PartsFieldTitle, o mi piace quello che ho fatto accidentalmente - Ho avuto un riferimento impostato e quando l'ho aggiornato con F9 ha aggiunto la casella del titolo a cui faceva riferimento.

Questo è piuttosto interessante dato che quando si aggiorna la casella del titolo i riferimenti si aggiornano automaticamente senza premere F9 !!! Questo è fantastico quando si ha il riferimento in un'intestazione dal Ctrl + UN la funzione non cattura ciò che si trova nell'intestazione / piè di pagina e di solito devi fare doppio clic all'interno dell'intestazione / piè di pagina per selezionare, quindi premere F9 aggiornare.

Quindi, invece di creare un riferimento al titolo come detto sopra, fai questo:

  • Dopo aver impostato la casella del titolo, creare un segnalibro nella casella Titolo:

    • Seleziona la casella del titolo (assicurati di fare clic sulla scheda del titolo in alto per selezionare tutto il riquadro)
    • InsertBookmark → (nome che dice Project_title ) → add
  • Quindi aggiungi il riferimento in questo modo:

    • Insert tabQuick PartsFieldRef (e selezionare Project_title o come lo hai chiamato tu)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.