列名を使用して列に数式を設定すると、数式が計算されない場合がある
対象製品
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
【手順】
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
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