MESCIUS SPREAD for Windows Forms 17.0J サンプルコード集
小計/合計を設定する

SUBTOTAL関数を利用することで、例えば小計行および合計行を含むような明細表を作成することもできます。

【実行例】

小計/合計行

  • SPREAD for Windows Formsにおける各コレクションインデックスの下限は必ず「0」から始まりますが、数式の作成では「1」から始まる参照番号を使用します。つまり、先頭の列および行を表す番号は「0」ではなく常に「1」となります。 (例:Cells(0,0) ⇒ "A1")
  • ActiveX版で使用された「A#+B#」のような数式はサポートされません。

    SPREAD for Windows Formsでは、例えばA列とB列の値を加算してC列に設定する場合は、相対セル参照をRC[-2]+RC[-1]のようにします。現在の位置(C列内)と演算対象のセルの相対位置を指定することで、ActiveX版のワイルドカードと同様の操作を行うことができます。

      
            FpSpread1.Sheets(0).ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.R1C1
            FpSpread1.Sheets(0).Columns(2).Formula = "SUM(RC[-2]:RC[-1])"
    

 private void Form1_Load(object sender, System.EventArgs e)
 {

   fpSpread1.ActiveSheet.ColumnCount = 2;
   fpSpread1.ActiveSheet.Columns[0].Label = " ";
   fpSpread1.ActiveSheet.Columns[1].Label = "値";
   fpSpread1.ActiveSheet.HorizontalGridLine = new FarPoint.Win.Spread.GridLine(FarPoint.Win.Spread.GridLineType.None);

   fpSpread1.ActiveSheet.Columns[0].CellType = new FarPoint.Win.Spread.CellType.TextCellType();
   fpSpread1.ActiveSheet.SetText(3, 0, "小計1");
   fpSpread1.ActiveSheet.SetText(7, 0, "小計2");
   fpSpread1.ActiveSheet.SetText(8, 0, "合計");
   fpSpread1.ActiveSheet.Rows[3].BackColor = Color.LemonChiffon;
   fpSpread1.ActiveSheet.Rows[7].BackColor = Color.LemonChiffon;
   fpSpread1.ActiveSheet.Rows[8].BackColor = Color.LightPink;

   fpSpread1.ActiveSheet.Columns[1].CellType = new FarPoint.Win.Spread.CellType.NumberCellType();
   fpSpread1.ActiveSheet.SetValue(0, 1, 100);
   fpSpread1.ActiveSheet.SetValue(1, 1, 200);
   fpSpread1.ActiveSheet.SetValue(2, 1, 300);
   fpSpread1.ActiveSheet.SetValue(4, 1, 400);
   fpSpread1.ActiveSheet.SetValue(5, 1, 500);
   fpSpread1.ActiveSheet.SetValue(6, 1, 600);

   //SUBTOTAL関数を利用して小計および合計を設定します
   fpSpread1.ActiveSheet.SetFormula(3, 1, "SUBTOTAL(9,B1:B3)");
   fpSpread1.ActiveSheet.SetFormula(7, 1, "SUBTOTAL(9,B5:B7)");
   fpSpread1.ActiveSheet.SetFormula(8, 1, "SUBTOTAL(9,B1:B7)");

 }
 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

   FpSpread1.ActiveSheet.ColumnCount = 2
   FpSpread1.ActiveSheet.Columns(0).Label = " "
   FpSpread1.ActiveSheet.Columns(1).Label = "値"
   FpSpread1.ActiveSheet.HorizontalGridLine = New FarPoint.Win.Spread.GridLine(FarPoint.Win.Spread.GridLineType.None)

   FpSpread1.ActiveSheet.Columns(0).CellType = New FarPoint.Win.Spread.CellType.TextCellType
   FpSpread1.ActiveSheet.SetText(3, 0, "小計1")
   FpSpread1.ActiveSheet.SetText(7, 0, "小計2")
   FpSpread1.ActiveSheet.SetText(8, 0, "合計")
   FpSpread1.ActiveSheet.Rows(3).BackColor = Color.LemonChiffon
   FpSpread1.ActiveSheet.Rows(7).BackColor = Color.LemonChiffon
   FpSpread1.ActiveSheet.Rows(8).BackColor = Color.LightPink

   FpSpread1.ActiveSheet.Columns(1).CellType = New FarPoint.Win.Spread.CellType.NumberCellType
   FpSpread1.ActiveSheet.SetValue(0, 1, 100)
   FpSpread1.ActiveSheet.SetValue(1, 1, 200)
   FpSpread1.ActiveSheet.SetValue(2, 1, 300)
   FpSpread1.ActiveSheet.SetValue(4, 1, 400)
   FpSpread1.ActiveSheet.SetValue(5, 1, 500)
   FpSpread1.ActiveSheet.SetValue(6, 1, 600)

   'SUBTOTAL関数を利用して小計および合計を設定します
   FpSpread1.ActiveSheet.SetFormula(3, 1, "SUBTOTAL(9,B1:B3)")
   FpSpread1.ActiveSheet.SetFormula(7, 1, "SUBTOTAL(9,B5:B7)")
   FpSpread1.ActiveSheet.SetFormula(8, 1, "SUBTOTAL(9,B1:B7)")

 End Sub

 

 


© MESCIUS inc. All rights reserved.