作成日: 2025/03/06 最終更新日: 2025/05/15
文書種別
不具合
発生環境
17.0J
状況
修正済み
詳細
回避方法
■サンプルコード(VB.NET)
Private WithEvents dm As DefaultSheetDataModel
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
With FpSpread1.ActiveSheet
dm = CType(.Models.Data, DefaultSheetDataModel)
dm.UnionedChangeCellRange = False
.ReferenceStyle = ReferenceStyle.R1C1
.Columns(2).Formula = "RC1 * RC2"
.Rows.Clear()
addingRow = True
For i As Integer = 0 To 1
.Rows.Add(i, 1)
Next
addingRow = False
SetValue()
For i As Integer = 0 To 1
.SetValue(i, 0, 2)
.SetValue(i, 1, 500)
Next
FpSpread1.ActiveSheet.Columns(0).Locked = False
FpSpread1.ActiveSheet.Columns(1).Locked = False
FpSpread1.ActiveSheet.Columns(2).Locked = False
End With
End Sub
Dim addingRow As Boolean = False
Dim lstIndex As List(Of Point) = New List(Of Point)
Private Sub dm_Changed(sender As Object, e As SheetDataModelEventArgs) Handles dm.Changed
If (addingRow) Then
lstIndex.Add(New Point(e.Row, e.Column))
Return
End If
Dim rowIdx As Integer = e.Row
Dim colIdx As Integer = e.Column
If colIdx = 2 Then
Me.FpSpread1.ActiveSheet.SetValue(rowIdx, 4, Me.FpSpread1.ActiveSheet.GetValue(rowIdx, 2))
End If
End Sub
Private Sub SetValue()
For i As Integer = 0 To lstIndex.Count - 1
Dim rowIdx As Integer = lstIndex(i).X
Dim colIdx As Integer = lstIndex(i).Y
If colIdx = 2 Then
Me.FpSpread1.ActiveSheet.SetValue(rowIdx, 4, Me.FpSpread1.ActiveSheet.GetValue(rowIdx, 2))
End If
Next
End Sub