
¿Cómo puedo hacer que cada instancia de una palabra sea un hipervínculo a un archivo en mi computadora?
He logrado hacerlo con una instancia de la palabra, pero repetir esto lleva mucho tiempo, así que espero que el programa pueda hacerlo.
También me gustaría utilizar las variables de sistema %windir% y %userprofile% en el archivo.
Esto es lo que probé:
%windir%\system32\shell32.dll
Sin embargo, Openoffice lo reemplaza (y falla) y se ve así:
"%25windir%25\system32\shell32.dll"
Si agrego comillas dobles, openoffice agrega otro par a la ruta y eso también hace que Windows no encuentre el archivo.
Miré en Editar > Archivo y Reemplazar pero no veo ninguna opción para reemplazar todas las instancias de una palabra con un hipervínculo a un archivo manteniendo la palabra igual.
Respuesta1
Primero, seleccione el enlace existente que creó y cópielo. Luego, ejecute esta macro, que encontrará todas las apariciones de "TheWordToLink" y pegará el enlace en esos lugares.
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
El código de búsqueda y reemplazo se tomó de la sección 7.14 deEl documento macro de Andrew Pitonyak.
En cuanto a las variables ambientales, eso requiere una solución más difícil. Es decir, llame a una macro desde el enlace y luego la macro realizará la llamada del sistema al archivo. Si estás usando Básico:
- Verhttps://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=53609para saber cómo hacer que un hipervínculo llame a una macro.
- VerCrear enlaces automáticos en OpenOfficepara obtener código que pueda encontrar y crear los hipervínculos.
- Verhttps://forum.openoffice.org/en/forum/viewtopic.php?f=29&t=25047para una macro que utiliza una variable de entorno en una ruta.
- Verhttps://forum.openoffice.org/en/forum/viewtopic.php?f=44&t=7918para llamadas al sistema.