2009年4月22日水曜日

Oooのマクロの記録(Calc Macro Recorder)

OpenOffice.orgでマクロを記録すると、dispacherを使用したマクロが記録される。
これも使えない訳じゃないけど、もっと簡単な方法あるんじゃね?
ってことで色々方法を探していたら、以下サイトに「Calc Macro Recorder」なるマクロの話を見つけた。
http://oooug.jp/compati/basic/pukiwiki.php?%B5%AD%CF%BF%A5%DE%A5%AF%A5%ED

作者のページはここ:http://www.ooomacros.org/user.php#104617
DLはこっから:http://sourceforge.net/project/showfiles.php?group_id=87718&package_id=104617

【設定方法】
1.ツール->マクロ->マクロの管理->OpenOffice.org Basic
2.管理ボタンクリック
3.ライブラリタブクリック
4.場所コンボから「マイマクロ&ダイアログ」を選択し、インポートボタンクリック
5.解凍したファイルを選択し、OKクリック
6.Standardのチェックを外し、OKクリック

ツールメニューとかに登録するとなお便利。
マクロは[マイマクロ&ダイアログ].Standardの中に保存される。
マクロエディタを開いても保存されてないっぽい時は、マクロエディタを一度終了してからやってみて。

でも保存されないのもありますわ。(中身無しの関数だけある感じ)

標準ではこんな感じ++++++++++++++++++++++++++++++++++++++++++++++++++++
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 ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "DocName"
args1(0).Value = "200901"
args1(1).Name = "Index"
args1(1).Value = 32767
args1(2).Name = "Copy"
args1(2).Value = true

dispatcher.executeDispatch(document, ".uno:Move", "", 0, args1())
end sub
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Calc Macro Recorder を使うと(背景色変えるだけ)++++++++++++++++++++++++++++++
Sub Macro1()
' date: 2009/04/22 17:28:40

oCellRange = ThisComponent.Sheets.MonthlyTemplate.getCellRangeByName("E6")
ThisComponent.CurrentController.Select(oCellRange)

ThisComponent.CurrentSelection.CellBackColor = 15132415

End Sub
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

でもこれ…どやって消したらいいの?(;゚Д゚)

0 件のコメント:

コメントを投稿