web-dev-qa-db-ja.com

OpenOfficeで自動リンクを作成する

特定の単語を自動的にハイパーリンクに置き換えることができるOpenOfficeのマクロはありますか?

OpenOfficeで「google」という単語を入力するたびに、その単語を http://www.google.com/ へのハイパーリンクにします。

3
Anderson Green

OOoすぐにWordをハイパーリンクに置き換える(マクロを記述しない)ことはできませんが、自動置換とURL認識を組み合わせることでこれを実現できます。

  • GoogleWWW」を「http://www.google.com」(テキストとして)に置き換える自動置換ルールを定義できます。
  • 2番目のステップで、メニューFormat-> AutoCorrect...-> Applyを選択して、OOoリンクテキストをハイパーリンクに置き換えます。

置き換えるテキストとして「GoogleWWW」を提案しました。単に「google」を使用すると、ハイパーリンクが作成されたときに置換が行われるため、2回目になります。 www.http://www.google.com.comのようなリンクテキスト。

編集:

これは、任意の選択されたテキストをハイパーリンクに置き換える単純なマクロのソースです(注意して使用してください。これは単なる「概念実証」です。たとえば、選択されたテキストにスペースが含まれているかどうかはチェックされないため、結果のリンクが指す場合があります。無効なURLへ):

sub ReplaceByHyperlink
    rem ----------------------------------------------------------------------
    rem define variables
    dim document   as object
    dim dispatcher as object
    dim oSelection, oRange as object
    dim strSelectedWord as String
    rem ----------------------------------------------------------------------
    rem get access to the document and grab first selection
    oSelection = ThisComponent.CurrentController.Selection
    oRange = oSelection(0)
    rem ----------------------------------------------------------------------
    rem rudimentary input check (selection available, text selected?)
    If Not (HasUnoInterfaces(oRange, "com.Sun.star.text.XTextRange")) Then
        MsgBox "no text available"
        exit sub
    End if
    strSelectedWord = oRange.getString
    If Len(strSelectedWord) < 1 Then
        MsgBox "No Text selected"
        exit sub
    End if
    rem ----------------------------------------------------------------------
    rem ok, there's some text selected, let's transform it...
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.Sun.star.frame.DispatchHelper")
    dim args1(4) as new com.Sun.star.beans.PropertyValue
    args1(0).Name = "Hyperlink.Text"
    args1(0).Value = strSelectedWord
    args1(1).Name = "Hyperlink.URL"
    args1(1).Value = "http://www." + LCase(strSelectedWord) + ".com/"
    args1(2).Name = "Hyperlink.Target"
    args1(2).Value = ""
    args1(3).Name = "Hyperlink.Name"
    args1(3).Value = strSelectedWord
    args1(4).Name = "Hyperlink.Type"
    args1(4).Value = 1
    dispatcher.executeDispatch(document, ".uno:SetHyperlink", "", 0, args1())
end sub

Tools-> Customize-> Keyboardを使用して、このマクロをキーボードショートカットに割り当てることができます。 SHIFT+CTRL+G、 例えば。このように、AutoCorrectルールを定義する必要はありません。

1
tohuwawohu