I bookmark e gli hyperlink sono prestazioni di Word, la loro gestione e' quella Microsoft e, per quello che ne so, non esistono agganci facilmente utilizzabili per realizzare quanto richiesto.
Una cosa simile si puo' simulare tramite macro con questo procedimento:
-vai sul progetto vba del documento, cerca ed espandi il "modulo" ThisDocument
-inseriscici questo codice:
- Codice: Seleziona tutto
Private Sub Document_Close()
Application.OnTime Now + TimeValue("00:00:01"), "mmacro11"
mytim = Timer
Do
DoEvents: If Timer > (mytim + 2) Or Timer < mytim Then Exit Do
Loop
End Sub
Private Sub Document_Open()
myNext = Now + TimeValue("00:00:05")
Application.OnTime myNext, "myBMHlight"
End Sub
Poi crea un modulo standard (Menu /Inserisci /Modulo) e inserisci questo codice:
- Codice: Seleziona tutto
Public myNext 'RIGOROSAMENTE INTESTA AL MODULO
Sub myBMHlight()
Dim BM As Bookmark
If ActiveDocument = ThisDocument Then
'Debug.Print "myBMHL"
mytim = Timer
DoEvents
For Each BM In ActiveDocument.Bookmarks
If Selection.Range.InRange(BM.Range) Then
BM.Range.HighlightColorIndex = wdBrightGreen
Else
BM.Range.HighlightColorIndex = wdNoHighlight
End If
Next BM
End If
'Debug.Print Format(Timer - mytim, "0.000")
myNext = Now + TimeValue("00:00:02")
Application.OnTime myNext, "myBMHlight"
End Sub
Sub mmacro11()
Debug.Print "mmacro11"
End Sub
Sub Stoppa()
Application.OnTime Now + TimeValue("00:00:01"), "mmacro11"
mytim = Timer
Do
DoEvents: If Timer > (mytim + 2) Or Timer < mytim Then Exit Do
Loop
End Sub
Salva il documento (in formato .docm, macro enabled), chiudilo e riaprilo.
Prova ora ad andare su un bookmark: nel giro di 2 sec il bookmark dovrebbe evidenziarsi; analogamente se sposti la selezione, nel giro di 2 sec l'evidenza dovrebbe essere rimossa.
Questo funziona indipendentemente da come sei andato sul bookmark: via hyperlink, selezione manuale, tramite F5, ...
Questo e' ottenuto perche' quando il file viene aperto viene schedulata l'esecuzione della Sub myBMHlight, che poi si riesegue sistematicamente fino alla chiusura del file ogni 2 secondi.
Ovviamente ci saranno delle situazioni in cui questa situazione puo' dare fastidio. In questo caso lancia manualmente la Sub Stoppa (da Word, premi F8; scegli Stoppa dall'elenco di macro disponibili, premi Esegui); in questo modo la prestazione verra' interrotta e ripartira' alla successiva apertura del documento.
Spero sia di qualche utilita'.
Ciao