Jump to content

Macros/Calc/ba025

From The Document Foundation Wiki
This page is a translated version of the page Macros/Calc/ba025 and the translation is 100% complete.


概要

このページでは、指定されたセル範囲の並べ替え情報を取得する 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 コードが含まれています。