Top > OOoBasic > Calc > SubTotal

小計 Edit

概要 Edit

小計はシートの com.sun.star.sheet.XSubTotalCalculatable インターフェースを使用して設定します。

小計ディスクリプタ Edit

小計の設定は createSubTotalDescriptor メソッドで作成したディスクリプタに対して行います。

Sub SubTotal_1
  oSheet = ThisComponent.getSheets().getByIndex(0)
  
  ' 列の条件設定
  oSubTotalCol = CreateUnoStruct("com.sun.star.sheet.SubTotalColumn")
  oSubTotalCol.Column = 1
  oSubTotalCol.Function = com.sun.star.sheet.GeneralFunction.SUM
  
  oDesc = oSheet.createSubTotalDescriptor(True)
  oDesc.addNew(Array(oSubTotalCol), 0)
  
  oDesc.BindFormatsToContent = False
  
  oSheet.applySubTotals(oDesc, True)
End Sub

小計を適用する列の指定は com.sun.star.sheet.SubTotalColumn で行います。

.sheet.SubTotalColumn
Column列インデックス
Function適用する関数 (下記参照)

小計全体の設定は次のプロパティで行います。

プロパティ説明
BindFormatsToContentboolean書式を含む
Countlong小計を適用する列数
EnableSortboolean並べ替える
EnableUserSortListbooleanユーザー定義の並べ替えリストを使用する
InsertPageBreaksbooleanグループごとに改ページ
IsCaseSensitiveboolean大小文字を区別する
MaxFieldCountlong最大フィールド数。3 (読み込み専用)
SortAscendingboolean昇順に並べ替える
UserSortListIndexlong使用するユーザー定義の並べ替えリストのインデックス

設定した列の指定は addNew メソッドで追加します。最大数は 3 です。設定を初期化するには clear メソッドを呼び出します。また、com.sun.star.container.XIndexAccess インターフェースのメソッドも使用できます。

addNew メソッドの最初の引数には SubTotalColumn の配列で条件を指定します。また、二つ目の引数はグループ化する列のインデックスです。

Function Edit

関数の指定は com.sun.star.sheet.GeneralFunction で行います。

.sheet.GeneralFunction
NONEなし
AUTO自動。セルの値が全て数値の場合 SUM、そのほか COUNT
SUM合計
COUNT総数
AVERAGE平均
MAX最大
MIN最小
PRODUCT
COUNTNUMS総数 (数値のみ)
STDEV標準偏差 (標本調査)
STDEVP標準偏差 (母集団)
VAR分散 (標本調査)
VARP分散 (母集団)

小計の適用 Edit

上記で作成したディスクリプタを applySubTotals メソッドの引数として与え、小計を適用します。メソッドの二つ目の引数は前の結果を上書きするかどうかを指定します。上記参照。

小計の削除 Edit

removeSubTotals メソッドを呼び出して小計を削除します。正しく解除されません (バグ?)。

Sub SubTotal_5
  oDoc = ThisComponent
  oSheet = oDoc.getSheets().getByIndex(0)
  oSheet.removeSubTotals()
End Sub

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes