Convertir todas las instancias de una palabra en un hipervínculo en OpenOffice

Convertir todas las instancias de una palabra en un hipervínculo en OpenOffice

¿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:

  1. Verhttps://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=53609para saber cómo hacer que un hipervínculo llame a una macro.
  2. VerCrear enlaces automáticos en OpenOfficepara obtener código que pueda encontrar y crear los hipervínculos.
  3. Verhttps://forum.openoffice.org/en/forum/viewtopic.php?f=29&t=25047para una macro que utiliza una variable de entorno en una ruta.
  4. Verhttps://forum.openoffice.org/en/forum/viewtopic.php?f=44&t=7918para llamadas al sistema.

información relacionada