Home > コンピュータ > LibreOffice > マクロ > Basic > Witer > LibreOffice Writerで、文字をカーソル位置に挿入するマクロ

LibreOffice Writerで、文字をカーソル位置に挿入するマクロ

新規作成日 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](リンク先消失)

実行して動作を確認

マクロを実行すると、領域選択していない場合は、挿入され、領域選択している場合は、置換されます。動作は、どちらのマクロも同じです。

文字列を挿入するマクロを実行する
このエントリーをはてなブックマークに追加