列名を使用して列に数式を設定すると、数式が計算されない場合がある

文書番号 : 37639     文書種別 : 不具合     登録日 : 2014/10/21     最終更新日 : 2015/11/09
文書を印刷する
対象製品
SPREAD for WPF 1.0J
状況
修正済み
詳細
列名を使用して列に数式を設定すると、数式が計算されない場合があります。

【手順】
1.新規ウィンドウにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.Buttonをクリックします
4.A1セルに「1」を入力します
   --D列の数式が計算されません

【サンプルコード】
  Public Sub New()
    InitializeComponent()

    ' 列名の設定
    GcSpreadGrid1.Columns(0).Name = "ACol"
    GcSpreadGrid1.Columns(1).Name = "BCol"
    GcSpreadGrid1.Columns(2).Name = "CCol"

    ' 数式の設定
    GcSpreadGrid1.Columns(3).Formula = "SUM(ACol+BCol+CCol)"
    GcSpreadGrid1.Cells(9, 0).Formula = "SUM(A1:A9)"
    GcSpreadGrid1.Cells(9, 1).Formula = "SUM(B1:B9)"
    GcSpreadGrid1.Cells(9, 2).Formula = "SUM(C1:C9)"
    GcSpreadGrid1.Cells(11, 0).Formula = "A10*A11"
    GcSpreadGrid1.Cells(11, 1).Formula = "B10*B11"
    GcSpreadGrid1.Cells(11, 2).Formula = "C10*C11"
  End Sub

  Private Sub Button1_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
    ' 値の設定
    GcSpreadGrid1.Cells(10, 0).Value = 1
    GcSpreadGrid1.Cells(10, 1).Value = 2
    GcSpreadGrid1.Cells(10, 2).Value = 3
  End Sub
回避方法
Service Pack 2(v1.0.2015.1109)で修正済み。
Service Pack 2(v1.0.2015.1109)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

列ではなく、セルに数式を設定します。

【サンプルコード】
  Public Sub New()
    InitializeComponent()

    ' 列名の設定
    GcSpreadGrid1.Columns(0).Name = "ACol"
    GcSpreadGrid1.Columns(1).Name = "BCol"
    GcSpreadGrid1.Columns(2).Name = "CCol"

    ' 数式の設定
    'GcSpreadGrid1.Columns(3).Formula = "SUM(ACol+BCol+CCol)"
    GcSpreadGrid1.Cells(9, 0).Formula = "SUM(A1:A9)"
    GcSpreadGrid1.Cells(9, 1).Formula = "SUM(B1:B9)"
    GcSpreadGrid1.Cells(9, 2).Formula = "SUM(C1:C9)"
    GcSpreadGrid1.Cells(11, 0).Formula = "A10*A11"
    GcSpreadGrid1.Cells(11, 1).Formula = "B10*B11"
    GcSpreadGrid1.Cells(11, 2).Formula = "C10*C11"

    ' セルに数式を設定
    For i As Integer = 0 To GcSpreadGrid1.RowCount - 1
      GcSpreadGrid1.Cells(i, 3).Formula = "SUM(ACol+BCol+CCol)"
    Next
  End Sub