macro per andare a un certo bookmark

Una volta avevo creato una macro autoopen per cui quando si apriva un documento odt il cursore si spostava nel punto dove avevo creato un certo segnalibro (“qui”).
Questa feature sarebbe superata se funzionasse sempre l’ottima caratteristica di LibreWriter di andare al punto in cui il documento (ovviamente supponendo che sia lungo) era stato chiuso (e salvato). Ma questo, come ho già segnalato in altro luogo molto spesso non avviene.
Allora ho tentato di creare una macro per velocizzare il processo:
1)bisognerebbe dare lo stesso nome di bookmark (“qui”) a un nuovo punto, a cui si è arrivati, sovrascivendo il precedente bookmark “qui”; ma questo non mi risultava possibile (ora invece, come dico sotto, sono riuscito a farlo).
2) Bisognerebbe poi creare una macro autoopen che appena si apre un documento, vada a quel segnalibro, “qui”.

La prima cosa, mi correggo, funziona:

sub qui
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Bookmark"
args1(0).Value = "qui"

dispatcher.executeDispatch(document, ".uno:DeleteBookmark", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Bookmark"
args2(0).Value = "qui"

dispatcher.executeDispatch(document, ".uno:InsertBookmark", "", 0, args2())


end sub

Ma la seconda ho provato a rimaneggiarla, da inesperto non funziona

sub vai_fin_qui
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:GotoBookmark", "qui", 0, Array()

end sub

Mi potete aiutare?
Grazie

Maiusc+F5 ti riporta al punto in cui hai eseguito l’ultima modifica, dopo salvataggio, chiusura e riapertura del documento.
Trovi questo e altri trucchetti nel pdf “Trucchi LibreOffice” a questo link:

https://wiki.documentfoundation.org/IT/Guide_e_Manuali_non_TDF

Però a me non funziona maius+F5 :frowning:

Mi sembra un po’ strano…
Lo shift… sopra il ctrl… ??? :slight_smile:

certo, quello: non funziona. Del resto LibreWriter dovrebbe automaticamente andare al punto in cui era stato chiuso, se uno ha inserito i suoi dati e si tratta di un file odt. E infatti molte volte lo fa. ma molte altre no. Per questo cerco una macro per andare a uno specifico segnalibro. :slight_smile:

Che versione hai di LibreOffice? Ho provato con la 5.1.6 su Linux e la 5.3.4 su win7 e non riscontro problemi…

la 5.3 su Kubuntu. Ho già segnalato il bug, ed è stato riconosciuto come tale.

Una soluzione, non completa, me l’anno data qui