小計
概要
小計はシートの com.sun.star.sheet.XSubTotalCalculatable インターフェースを使用して設定します。 小計ディスクリプタ
小計の設定は 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 で行います。
小計全体の設定は次のプロパティで行います。
設定した列の指定は addNew メソッドで追加します。最大数は 3 です。設定を初期化するには clear メソッドを呼び出します。また、com.sun.star.container.XIndexAccess インターフェースのメソッドも使用できます。 addNew メソッドの最初の引数には SubTotalColumn の配列で条件を指定します。また、二つ目の引数はグループ化する列のインデックスです。 Function
関数の指定は com.sun.star.sheet.GeneralFunction で行います。
小計の適用
上記で作成したディスクリプタを applySubTotals メソッドの引数として与え、小計を適用します。メソッドの二つ目の引数は前の結果を上書きするかどうかを指定します。上記参照。 小計の削除
removeSubTotals メソッドを呼び出して小計を削除します。正しく解除されません (バグ?)。 Sub SubTotal_5 oDoc = ThisComponent oSheet = oDoc.getSheets().getByIndex(0) oSheet.removeSubTotals() End Sub |