選択されているセルが複数個だった場合の対処
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)