カテゴリー別アーカイブ: Libre Basic

Libre:090 オートフィルタでデータを抽出する

 

Sub ksAutofilter

Dim objController as Object
Dim objFrame as Object

objController = ThisComponent.CurrentController
objFrame = objController.getFrame()
oDispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)

activeSheet = objController.ActiveSheet
selectedCell = activeSheet.getCellRangeByPosition(0,0,3,4)
ThisComponent.CurrentController.select(selectedCell)

oDispatcher.executeDispatch(objFrame, “.uno:DataFilterAutoFilter”, “”, 0, Array())

End Sub

Libre:088 データエリアに外枠をつける

Excelなら2行で実装できますが、Libreではそうもいきませんね。

ポイントはIs_xxx_LineValidメソッドを全てTruenにすることらしい。

Sub ksTableBorder()
Dim objSheet As Object
Dim objRange As Object
Dim objTableBorder As New com.sun.star.table.TableBorder
Dim objBorderLineBlack As New com.sun.star.table.BorderLine

objSheet = ThisComponent.CurrentController.ActiveSheet
objRange = ThisComponent.CurrentController.getSelection()

‘黒の単線の設定
With objBorderLineBlack
.Color = RGB(0, 0, 0)
.OuterLineWidth = 20
End With
With objTableBorder

‘表の外枠の設定
.LeftLine = objBorderLineBlack
.RightLine = objBorderLineBlack
.TopLine = objBorderLineBlack
.BottomLine = objBorderLineBlack
.IsLeftLineValid = True
.IsRightLineValid = True
.IsTopLineValid = True
.IsBottomLineValid = True

End With

objRange.TableBorder = objTableBorder
End Sub

Libre:085 アクティブセル領域のアドレスを取得する

エレガントじゃないけど、これで目的は果たせる

 

Sub ksSelection()

dim objRange as Object

objRange=ThisComponent.CurrentSelection.RangeAddress
sRow=objRange.StartRow ‘選択範囲の始めの行番号
eRow=objRange.EndRow ‘選択範囲の終わりの行番号

sColumn=objRange.StartColumn ‘選択範囲の始めの列番号
eColumn=objRange.EndColumn ‘選択範囲の終わりの列番号

msgbox sRow & chr(10) & eRow & chr(10) & sColumn & chr(10) & eColumn

End Sub

Libre:084 セル内の文字列を操作する

全く同じことはできませんが、(できるかもしれないが面倒くさい)

以下のコードが最も近いでしょうか。

その他にleft, right, midを使う方法が

あるかもしれません。

 
 

Sub ksCalcCharColor()
Dim objDoc as Object, objSheet as Object
Dim objCell as Object
Dim oTextCursor as Object

objDoc=ThisComponent
objSheet=objDoc.getSheets().getByName(“sheet1”)
objCell=objSheet.getCellByPosition(0,0)
oTextCursor = objCell.createTextCursor()
With oTextCursor
.gotoStart( False )
.goRight( 3, True )
.setPropertyValue( “CharColor”, RGB(255,0,0) )
.gotoEnd( False )
End With
msgbox “Success”
End Sub