Non riesco a ottenere l'intervallo di un documento se detto documento contiene un collegamento. Posso ottenere l'intervallo di un oggetto di testo in un documento di Word quando non ha un collegamento, ma se il documento di Word ha un collegamento, l'intervallo che ottengo non è corretto per aggiungere del testo dopo il collegamento. Sembra che ho bisogno di usare un altro metodo per ottenere l'intervallo (di qualcosa di diverso da un oggetto di testo?), Ma non so di cosa si tratta. Le ore di ricerca online e le immersioni nel dizionario mi hanno solo portato a quanto segue.
(Nonostante la lunghezza del codice qui sotto, la domanda che mi interessa riguarda solo l'ultima parte, come creare un intervallo che cattura anche il collegamento, in modo da poter aggiungere più testo correttamente.)
Ecco il codice che mi dà problemi, se lo esegui con qualsiasi file usato come collegamento in FilePath, aggiungerà il link a un documento word ma non aggiungerà l'end marker "End of Email":
set FilePath to (path to desktop) & "somefile.doc"
set FilePath to FilePath as string
set Filename to "ThisFile.txt"
tell application "Microsoft Word"
activate
tell active document --This is just a word document with or without text.
--This creates a range to add the link
set ContTemp to content of text object
set StartRange to (count of ContTemp) - 1
set endrange to StartRange
set theRange to create range start StartRange end endrange
--This adds the link (below the text, if there is any)
tell theRange
set CommentText to "Click here to open attachment " & Filename
--set FilePath to "desktop/" & Filename & " "
make new hyperlink object at end with properties {text to display:CommentText, hyperlink address:FilePath, text object:theRange}
end tell
end tell
--This tries to add text "End of Email" after the link, but doesn't work.
tell active document
set EndOfEmail to return & return & " End of Email" & return as string
set ContTemp to content of text object
set StartRange to (count of ContTemp) - 1
set endrange to StartRange
set theRange to create range start StartRange end endrange
set style of theRange to style normal
set content of theRange to EndOfEmail
end tell
end tell
Il codice dell'intervallo sopra è ottimo per accodare il testo al documento, ma dal momento che il link ha caratteri nascosti, presumo, questo codice non è in grado di posizionare il codice nella sua posizione corretta. Qualsiasi idea sarebbe molto apprezzata!