作成日: 2018/09/11 最終更新日: 2018/12/18
文書種別
不具合
状況
修正済み
詳細
列を移動した時、条件付き書式が正常に動作しなくなる場合があります。
■サンプルコード(VB.NET)
■再現手順
1. B列をD列とE列の間に移動します。
2. 同じ列を左隣に移動します。
条件付き書式が動作せず、背景色が変更されません。
■サンプルコード(VB.NET)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
' 行・列数を設定します。
FpSpread1.ActiveSheet.RowCount = 10
FpSpread1.ActiveSheet.ColumnCount = 5
' ユーザーによる列の移動を可能にします。
FpSpread1.AllowColumnMove = True
' セル型とサンプルデータを設定します。
Dim dtCell As New FarPoint.Win.Spread.CellType.DateTimeCellType
FpSpread1.ActiveSheet.Columns(2).CellType = dtCell
For i As Integer = 0 To 9
FpSpread1.ActiveSheet.Cells(i, 1).Value = i
FpSpread1.ActiveSheet.Cells(i, 2).Value = System.DateTime.Parse("1969/12/28").AddDays(i)
Next
' 条件付き書式を設定します。
' ※C列の日付が1970年1月1日より後の場合、B列の背景・前景色を変更します。
Dim formulaCFR As New FarPoint.Win.Spread.FormulaConditionalFormattingRule("DATEVALUE(C1)>DATE(1970,1,1)")
formulaCFR.BackColor = Color.DarkSlateBlue
formulaCFR.ForeColor = Color.White
FpSpread1.ActiveSheet.SetConditionalFormatting(-1, 1, formulaCFR)
End Sub
' 行・列数を設定します。
FpSpread1.ActiveSheet.RowCount = 10
FpSpread1.ActiveSheet.ColumnCount = 5
' ユーザーによる列の移動を可能にします。
FpSpread1.AllowColumnMove = True
' セル型とサンプルデータを設定します。
Dim dtCell As New FarPoint.Win.Spread.CellType.DateTimeCellType
FpSpread1.ActiveSheet.Columns(2).CellType = dtCell
For i As Integer = 0 To 9
FpSpread1.ActiveSheet.Cells(i, 1).Value = i
FpSpread1.ActiveSheet.Cells(i, 2).Value = System.DateTime.Parse("1969/12/28").AddDays(i)
Next
' 条件付き書式を設定します。
' ※C列の日付が1970年1月1日より後の場合、B列の背景・前景色を変更します。
Dim formulaCFR As New FarPoint.Win.Spread.FormulaConditionalFormattingRule("DATEVALUE(C1)>DATE(1970,1,1)")
formulaCFR.BackColor = Color.DarkSlateBlue
formulaCFR.ForeColor = Color.White
FpSpread1.ActiveSheet.SetConditionalFormatting(-1, 1, formulaCFR)
End Sub
■再現手順
1. B列をD列とE列の間に移動します。
2. 同じ列を左隣に移動します。
条件付き書式が動作せず、背景色が変更されません。
回避方法
Service Pack 2(v11.0.4503.2012)で修正済み。
Service Pack 2を適用せずに対処する場合、条件付き書式に設定する式について、列を絶対参照にすることで回避することが可能です。上記のサンプルコードの場合、以下のようになります。
変更前:DATEVALUE(C1)>DATE(1970,1,1)
変更後:DATEVALUE($C1)>DATE(1970,1,1)
Service Pack 2を適用せずに対処する場合、条件付き書式に設定する式について、列を絶対参照にすることで回避することが可能です。上記のサンプルコードの場合、以下のようになります。
変更前:DATEVALUE(C1)>DATE(1970,1,1)
変更後:DATEVALUE($C1)>DATE(1970,1,1)
旧文書番号
83219