作成日: 2018/10/22 最終更新日: 2018/12/18
文書種別
不具合
状況
修正済み
詳細
■事象
A1セルが表示されない位置にスクロールした上で、行・列を一旦すべて削除し、再度行・列を追加した時、SPREAD上の表示位置が以前のバージョンと異なります。
■再現サンプルコード(VB.NET)
■再現手順
1. フォーム上にSPREADとButtonコントロールを配置します。
2. 上記サンプルコードを実装し、実行します。
3. ボタンをクリックします。
→表示内容が旧バージョンと異なります。
■問題発生イメージ
A1セルが表示されない位置にスクロールした上で、行・列を一旦すべて削除し、再度行・列を追加した時、SPREAD上の表示位置が以前のバージョンと異なります。
■再現サンプルコード(VB.NET)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 行・列数を設定します。
FpSpread1.ActiveSheet.RowCount = 100
FpSpread1.ActiveSheet.ColumnCount = 10
' アクティブセルを"F51"に設定し、表示位置をそのセルに設定します。
' (コード上で行わず、直接操作しても同じ事象が発生します。)
FpSpread1.ActiveSheet.SetActiveCell(50, 5)
FpSpread1.ShowActiveCell(FarPoint.Win.Spread.VerticalPosition.Bottom, FarPoint.Win.Spread.HorizontalPosition.Right)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' すべての行・列を削除します。
FpSpread1.ActiveSheet.Rows.Clear()
FpSpread1.ActiveSheet.Columns.Clear()
' 行・列を追加します。
FpSpread1.ActiveSheet.AddRows(0, 100)
FpSpread1.ActiveSheet.AddColumns(0, 10)
End Sub
' 行・列数を設定します。
FpSpread1.ActiveSheet.RowCount = 100
FpSpread1.ActiveSheet.ColumnCount = 10
' アクティブセルを"F51"に設定し、表示位置をそのセルに設定します。
' (コード上で行わず、直接操作しても同じ事象が発生します。)
FpSpread1.ActiveSheet.SetActiveCell(50, 5)
FpSpread1.ShowActiveCell(FarPoint.Win.Spread.VerticalPosition.Bottom, FarPoint.Win.Spread.HorizontalPosition.Right)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' すべての行・列を削除します。
FpSpread1.ActiveSheet.Rows.Clear()
FpSpread1.ActiveSheet.Columns.Clear()
' 行・列を追加します。
FpSpread1.ActiveSheet.AddRows(0, 100)
FpSpread1.ActiveSheet.AddColumns(0, 10)
End Sub
■再現手順
1. フォーム上にSPREADとButtonコントロールを配置します。
2. 上記サンプルコードを実装し、実行します。
3. ボタンをクリックします。
→表示内容が旧バージョンと異なります。
■問題発生イメージ
回避方法
Service Pack 2(v11.0.4503.2012)で修正済み。
Service Pack 2を適用せずに対処する方法としては、行・列の編集後、ShowActiveCellメソッドを実行する方法が有効です。
■サンプルコード(VB.NET)
Service Pack 2を適用せずに対処する方法としては、行・列の編集後、ShowActiveCellメソッドを実行する方法が有効です。
■サンプルコード(VB.NET)
' すべての行・列を削除します。
FpSpread1.ActiveSheet.Rows.Clear()
FpSpread1.ActiveSheet.Columns.Clear()
' すべての行・列が削除されたかを確認する。
Dim chkIdx As Boolean = False
If (FpSpread1.ActiveSheet.ActiveRowIndex < 0) OrElse (FpSpread1.ActiveSheet.ActiveColumnIndex < 0) Then
chkIdx = True
End If
' 行・列を追加します。
FpSpread1.ActiveSheet.AddRows(0, 100)
FpSpread1.ActiveSheet.AddColumns(0, 10)
' 一旦すべての行・列が削除された時、アクティブセルに表示位置を移動します。
If chkIdx Then FpSpread1.ShowActiveCell(FarPoint.Win.Spread.VerticalPosition.Bottom, FarPoint.Win.Spread.HorizontalPosition.Right)
FpSpread1.ActiveSheet.Rows.Clear()
FpSpread1.ActiveSheet.Columns.Clear()
' すべての行・列が削除されたかを確認する。
Dim chkIdx As Boolean = False
If (FpSpread1.ActiveSheet.ActiveRowIndex < 0) OrElse (FpSpread1.ActiveSheet.ActiveColumnIndex < 0) Then
chkIdx = True
End If
' 行・列を追加します。
FpSpread1.ActiveSheet.AddRows(0, 100)
FpSpread1.ActiveSheet.AddColumns(0, 10)
' 一旦すべての行・列が削除された時、アクティブセルに表示位置を移動します。
If chkIdx Then FpSpread1.ShowActiveCell(FarPoint.Win.Spread.VerticalPosition.Bottom, FarPoint.Win.Spread.HorizontalPosition.Right)
旧文書番号
83313