Excelの場合、
Rows(“2:4”).select
Columes(“B:D”).select
と簡潔に書けますが、Libreでは難しい。
Libre057,058の合わせ技を使う必要がありそうです。
Excelの場合、
Rows(“2:4”).select
Columes(“B:D”).select
と簡潔に書けますが、Libreでは難しい。
Libre057,058の合わせ技を使う必要がありそうです。
これも、DispatcherHelperを使うよりは
泥臭いコードの方が短いので好きです。
sub ksSelectColumns
dim activeSheet as object
dim selectedRange as object
activeSheet = ThisComponent.CurrentController.ActiveSheet
selectedRange =activeSheet.getCellRangeByName(“A1:AMJ1″)
selectedRange.CellBackColor = 3
end sub
DispatchHelperを使用する方法も有りますが、
個人的には、getCellRangeByNameを使った方が好きです。
sub ksSelectColumns
dim activeSheet as object
dim selectedRange as object
activeSheet = ThisComponent.CurrentController.ActiveSheet
selectedRange =activeSheet.getCellRangeByName(“B1:B1048576”)
selectedRange.CellBackColor = 3
end sub
簡単にはわからず。
一時保留とさせていただきます。
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