新規作成日 2018-03-29
最終更新日
カーソル位置に、文字列を挿入するには、カーソル位置を指定する必要があります。
マクロの記録で取得したコード
新規文書を作成した後、マクロの記録を選択し、「文字列を追加する」とキーボードから入力し、マクロの記録を終了します。
マクロの記録では、次のようなコードが得られます。
REM ***** BASIC *****
sub InsertString
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Text"
args1(0).Value = "文字列を追加する"
dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())
end sub
インターネット上で探した情報を元に作成したコード
インターネットで調べてみるとカーソル位置に文字列を追加するコードは、以下のコードでも可能です。このマクロでは、挿入された文字は、選択された状態でマクロが終了します。
Sub InsertString_2
'writer 現在のカーソル位置に文字列を挿入する。
ThisComponent.CurrentController.getViewCursor.setString("文字列を追加する")
End Sub
参考
- LibreOffice Writer 現在のカーソル位置に今日の日付を挿入するマクロの実験 [http://j11.blog.so-net.ne.jp/2017-04-03](リンク先消失)
実行して動作を確認
マクロを実行すると、領域選択していない場合は、挿入され、領域選択している場合は、置換されます。動作は、どちらのマクロも同じです。

