在 OpenOffice 中将单词的所有实例设为超链接

在 OpenOffice 中将单词的所有实例设为超链接

我怎样才能使单词的每个实例成为指向我计算机上某个文件的超链接。

我已经设法用该单词的一个实例来完成此操作,但重复此操作非常耗时,所以我希望程序本身可以做到这一点。

我还想在文件中使用 %windir% 和 %userprofile% 系统变量。

以下是我尝试过的:

%windir%\system32\shell32.dll

然而,它被 Openoffice 替换(并失败)成如下所示:

“%25windir%25\system32\shell32.dll”

如果我添加双引号,openoffice 会在路径中添加另一对,这也会导致 Windows 找不到该文件。

我已经查看过“编辑”>“文件和替换”,但没有看到任何选项可以用指向文件的超链接替换单词的所有安装,同时保持单词不变。

答案1

首先,选择您创建的现有链接并复制它。然后,运行此宏,它将查找所有出现的“TheWordToLink”并将链接粘贴到这些位置。

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

搜索和替换代码取自Andrew Pitonyak 的宏文档

至于环境变量,这需要一个更困难的解决方案。也就是说,从链接调用一个宏,然后该宏将对文件执行系统调用。如果您使用的是 Basic:

  1. https://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=53609如何使超链接调用宏。
  2. 在 OpenOffice 中创建自动链接用于查找并创建超链接的代码。
  3. https://forum.openoffice.org/en/forum/viewtopic.php?f=29&t=25047对于使用路径中的环境变量的宏。
  4. https://forum.openoffice.org/en/forum/viewtopic.php?f=44&t=7918用于系统调用。

相关内容