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