Come ottenere l'intervallo di oggetto di testo in un documento di Word che include un collegamento?

1

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!

    
posta MBUST 10.05.2018 - 19:10
fonte

0 risposte

Leggi altre domande sui tag