簡単にはわからず。
一時保留とさせていただきます。
簡単にはわからず。
一時保留とさせていただきます。
Excelの場合、下記のような選択範囲をUnionメソッドで指定できます。
しかし、Libreではできないみたいです。
一つ一つ選択する方法を取るようです。
ただし、いちいちセルに入力する場合、だいぶ反応が
鈍いみたいですので、工夫が必要です。
工夫方法はここを参照のこと。
Libre:050のコードで選択範囲を変更します。
sub ksSelectedCellColored
dim activeSheet as object
dim selectedRange as object
activeSheet = ThisComponent.CurrentController.ActiveSheet
selectedRange =activeSheet.getCellRangeByName(“A1:A2”)
selectedRange.CellBackColor = 1
end sub
これはLibre050で示した以下の
方法で選択可能です。
selectedRange =activeSheet.getCellRangeByName(“A1:AMJ1048576”)
getCellByNameで選択する方法もありますが、
ここでは、getCellByPositionを使いました。
以下の例では、D5セルを選択できます。
選択範囲を指定する時は、getCellRangeByPosionメソッドを
使います。引数は少し野暮ったい書き方になります。
getCellRangeByPosition(0,0,3,4) // A1:D5
sub ksSelectedCell
dim activeSheet as object
dim selectedRange as object
dim selectedCell as object
activeSheet = ThisComponent.CurrentController.ActiveSheet
selectedCell = activeSheet.getCellByPosition(3,4) // D5
ThisComponent.CurrentController.select(selectedCell)
end sub
ちょっとハマりました。
それは、_c_, _r_の型の指定です。
Object型にすると、エラーになります。
必ずString型としてください。
sub ksShowCellAdress
dim cell as object
dim _c_ as string
dim _r_ as string
cell = ThisComponent.CurrentSelection
with cell.getCellAddress
_c_ = .Column
_r_ = .Row
msgbox _c_ & “:” & _r_
end with
end sub
sheet全体を選択する適当なコマンドがみつからなったので、
地道に、選択しました。ちなみにメニューから”全てを選択”を
選ぶとA1:AMJ1048576が名前のところに表示されますので、
この値を使うことにしました。
下記のコードでは、バックカラーを黒にしています。
sub ksAllSheetColored
dim activeSheet as object
dim selectedRange as object
activeSheet = ThisComponent.CurrentController.ActiveSheet
selectedRange =activeSheet.getCellRangeByName(“A1:AMJ1048576”)
selectedRange.CellBackColor = 1
end sub
cellに関数を入力します。
sub ksInputFormula
dim cell as object
cell = ThisComponent.CurrentSelection
cell.formula = “=SUM(A1:A4)”
end sub
cellに数式を入力するには、
cell.formulaを使用します。
ただし、cell.string = “=A1*20″でも
数式を入力できてしまいます。
これも注意が必要です。
sub ksInputFormula
dim cell as object
cell = ThisComponent.CurrentSelection
cell.formula = “=A1 * 20”
end sub
これは仕様なのでしょう。
A1に文字列0101
B1に数式=A1*100
が入ってます。
数式に変換していませんが、計算できてしまいます。
注意が必要です。
A1に”text”を代入すると
さすがに、B1は#VALUE!を返します。