Macros/Calc/ba025
Appearance
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
概要
このページでは、指定されたセル範囲の並べ替え情報を取得する LibreOffice Basic マクロを提供します。これは、7.0 Calc ガイドの第13章 ("Calc as a Database"(データベースとしてのCalc))から抜粋した例です。
説明
createSortDescriptor() メソッドを使用すると、指定したセル範囲の並べ替え情報を取得できます。このメソッドがデータベース範囲に対して呼び出されると、その範囲に格納されている並べ替え情報を使用して並べ替え記述子が作成されます。一方、createSortDescriptor() が標準の名前付き範囲または名前のない範囲に対して呼び出されると、既定のプロパティを使用して並べ替え記述子が生成されます。どちらの場合も、新しく生成されたソート記述子を変更し、指定した範囲に対して呼び出される sort メソッドの引数として渡すことができます。
次のマクロは、範囲に関連付けられた並べ替え情報を生成して表示する方法を示します。このマクロの出力は、ソート記述子のプロパティを表示するダイアログです。
Code
Sub DisplaySortDescriptor
On Error Resume Next
Dim oSheet
Dim oRange ' ソート記述子を作成するために必要な範囲
Dim oSortDescript
Dim i%
Dim s$
Dim oDoc ' 新しく作成された計算ドキュメントを参照
oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_default", 0, Array())
oSheet = oDoc.Sheets(0)
oRange = oSheet.getCellRangeByName("B28:D33")
oSortDescript = oRange.createSortDescriptor()
For i = LBound(oSortDescript) To UBound(oSortDescript)
s = s & oSortDescript(i).Name & " = "
s = s & oSortDescript(i).Value
s = s & CHR$(10)
Next
MsgBox s, 0, "Sort Descriptor"
End Sub
この Calc spreadsheet には上記の LibreOffice Basic コードが含まれています。