選択されているセルが複数個だった場合の対処
LibreOffice Basicでは複数個のセルが選択状態だったときには、扱いが変わります。以下のサンプルコードでは
選択部分がシングルセルかどうかをoSel.ImplementationNameの値で判別しています。"ScCellObj"でない場合はシングルセル選択では
ないと判断して、(5,2)セルに"NoSingleSelection"と入力します。またシングルセル選択なら(5,2)セルに選択されているセルの
行、列の値を入力します。
<< SDメモリUSBメモリ激安 上海問屋 >>
Nexus 7+LTE通信費+Wi-Fiスポットで24カ月間3,190円/月~
Sub GetSelectedCellTest
Dim oSheet as Object
Dim oCell As Object
Dim oSel as Object
Dim oCellAddr as Object
Dim nActCol as Long, nActRow as Long
oSheet = ThisComponent.CurrentController.ActiveSheet
oSel = ThisComponent.CurrentController.getSelection()
'oSel =ThisComponent.CurrentSelection '上の書式でもどちらでも。
if not oSel.ImplementationName = "ScCellObj" then
oCell = oSheet.getCellByPosition(5, 2 )
oCell.String="NoSingleSelection"
Exit Sub
End If
oCellAddr = oSel.getCellAddress()
oActCol = oCellAddr.Column
oActRow = oCellAddr.Row
oCell = oSheet.getCellByPosition(5, 2 ) '書き込みセル指定
oCell.String ="Selected=("+CStr(oActRow) + ","+ CStr(oActCol)+")"
End Sub
OpenOfficeマクロプログラミング―「Writer」「Calc」「Base」…OOoをBasicで便利に! (I・O BOOKS)
