Transforme todas as ocorrências de uma palavra em um hiperlink no OpenOffice

Transforme todas as ocorrências de uma palavra em um hiperlink no OpenOffice

Como posso fazer com que cada instância de uma palavra seja um hiperlink para um arquivo no meu computador.

Consegui fazer isso com uma instância da palavra, mas repetir isso consome muito tempo, então espero que o próprio programa possa fazer isso.

Também gostaria de usar as variáveis ​​de sistema %windir% e %userprofile% no arquivo.

Aqui está o que eu tentei:

%windir%system32shell32.dll

No entanto, isso é substituído (e falha) pelo Openoffice para ficar assim:

"%25windir%25\system32\shell32.dll"

Se eu adicionar aspas duplas, o openoffice adiciona outro par ao caminho e isso também faz com que o Windows não encontre o arquivo.

Procurei em editar> Arquivo e Substituir, mas não vejo nenhuma opção para substituir todas as instalações de uma palavra por um hiperlink para um arquivo, mantendo a palavra igual.

Responder1

Primeiro, selecione o link existente que você criou e copie-o. Em seguida, execute esta macro, que encontrará todas as ocorrências de “TheWordToLink” e cole o link nesses locais.

Sub PasteHyperlinks
    Dim vDescriptor, vFound, oVC
    Dim document, dispatcher
    oVC = ThisComponent.CurrentController.ViewCursor
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    vDescriptor = ThisComponent.createSearchDescriptor()
    With vDescriptor
        .SearchString = "TheWordToLink"
        .SearchWords = True
        .SearchCaseSensitive = False
    End With
    vFound = ThisComponent.findFirst(vDescriptor)
    Do While Not IsNull(vFound)
        oVC.gotoRange(vFound, False)
        dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
        vFound = ThisComponent.findNext( vFound.End, vDescriptor)
    Loop
End Sub

O código de pesquisa e substituição foi retirado da seção 7.14 doDocumento macro de Andrew Pitonyak.

No que diz respeito às variáveis ​​de ambiente, isso requer uma solução mais difícil. Ou seja, chame uma macro a partir do link e então a macro realizará a chamada do sistema para o arquivo. Se você estiver usando Básico:

  1. Verhttps://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=53609para saber como fazer um hiperlink chamar uma macro.
  2. VerCriando links automáticos no OpenOfficepara código que pode localizar e criar os hiperlinks.
  3. Verhttps://forum.openoffice.org/en/forum/viewtopic.php?f=29&t=25047para uma macro que usa uma variável de ambiente em um caminho.
  4. Verhttps://forum.openoffice.org/en/forum/viewtopic.php?f=44&t=7918para chamadas do sistema.

informação relacionada