OOo Basic である事をしたいが為のメモ(基礎,Wait,セル移動,背景色設定)
実験せずともPukiwikiに情報があった.
- http://hermione.s41.xrea.com/pukiwiki/index.php?OOoBasic%2FCalc
- http://hermione.s41.xrea.com/pukiwiki/index.php?OOoBasic%2FCalc%2Fguideline
基礎
C言語で言う 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 主処理をここに書く end sub
指定のセルを選択する
後で書いている処理も同様だが,変数を設定し,dispatcher.executeDispatch() で実施するという流れが見られる.
rem ---------------------------------------------------------------------- dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = "ToPoint" args1(0).Value = "$B$1" dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
Wait ステートメント [実行時]
説明も例文も OOo Basic ヘルプからコピペ.動作確認は「OOo Basic で OOo Calc の選択セルを右へ進み,下へ進み,行頭へ進む」の一部をサブルーチン化 - BiBoLoGを改造して取った.
プログラムの実行に割り込みをかけ、ミリ秒単位の指定時間だけ待機させます。
Sub ExampleWait Dim lTick As Long lTick = GetSystemTicks() wait 2000 lTick = (GetSystemTicks() - lTick) MsgBox "" & lTick & " Ticks" ,0,"The pause lasted" End Sub
右のセルへ移動するサブルーチン
rem **右のセルへ移動するサブルーチン Sub goRightSelectCell(dispatcher,document) rem ---------------------------------------------------------------------- dim args(1) as new com.sun.star.beans.PropertyValue args(0).Name = "By" args(0).Value = 1 args(1).Name = "Sel" args(1).Value = false dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args()) End Sub
下のセルへ移動するサブルーチン
rem **下のセルへ移動するサブルーチン Sub goDownSelectCell(dispatcher,document) rem ---------------------------------------------------------------------- dim args(1) as new com.sun.star.beans.PropertyValue args(0).Name = "By" args(0).Value = 1 args(1).Name = "Sel" args(1).Value = false dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args()) End Sub
行頭のセルへ移動するサブルーチン
rem **行頭のセルへ移動するサブルーチン Sub goStartOfRowSelectCell(dispatcher,document) rem ---------------------------------------------------------------------- dim args(1) as new com.sun.star.beans.PropertyValue args(0).Name = "By" args(0).Value = 1 args(1).Name = "Sel" args(1).Value = false dispatcher.executeDispatch(document, ".uno:GoToStartOfRow", "", 0, args()) End Sub
背景色を設定するサブルーチン
rem **背景色を設定するサブルーチン sub setColor(dispatcher,document,r,g,b) rem ---------------------------------------------------------------------- dim args(0) as new com.sun.star.beans.PropertyValue args(0).Name = "BackgroundPattern.BackColor" args(0).Value = rgb(r,g,b) dispatcher.executeDispatch(document, ".uno:BackgroundPattern", "", 0, args()) End Sub