LibreOffice-Calc-マクロの記録追加-使用方法

2019/11/10

プログラム

t f B! P L
LibreOffice Calcで「マクロの記録」追加と使用方法を示す。
機能はエクセルVBAの「マクロの記録」とほぼ同じ。
表計算ソフトで実施した動作をマクロ記述として保存する。

■LibreOffice-Calc-マクロの記録追加方法

LibreOffice Calcで「ツール」⇒「オプション」選択。

「LibreOffice」⇒「詳細」⇒「マクロの記録を有効にする」にチェック⇒「OK」選択。
これで「マクロの記録」が使える。

■LibreOffice-Calc-マクロの記録使用方法

LibreOffice Calcで「ツール」⇒「マクロ」⇒「マクロの記録」選択。

今回は試しに「Sheet1」のデータを「Sheet2」にコピペした。
⇒「記録の終了」おす。

ひらいているodsファイルのModule格納場所を選択⇒「新規モジュール」選択。

名前はデフォルトの「Module3」で「OK」選択。

「保存」選択⇒上書きしますか?「はい」選択。

LibreOffice Calcで「ツール」⇒「マクロ」⇒「マクロの編集」選択。

「Module3」のsub「Main」にマクロが保存されている。

REM  *****  BASIC  *****


sub Main
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 2

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())


end sub
LibreOffice流のマクロの記述方法がわかる。学べる。

■あとがき

エクセルVBAの可視セルPasteが
LibreOffice Basicでうまく動かなかったときに
「マクロの記録」でLibreOffice流のPasteを調るのに使った。
以上。

ブログ アーカイブ

ラベル

このブログを検索

スポンサーリンク

自己紹介

機械メーカー総合職正社員10年勤務後退職。 エクセルVBAプログラム歴 5年。 LibreOffice(無料)でVBAマクロ検証。
■Fortniteクエスト攻略動画■
■Twitter■
⇒詳細プロフィールを表示

QooQ