作成日: 2019/12/10 最終更新日: 2019/12/20
文書種別
不具合
状況
修正済み
詳細
連結列と非連結列が存在するシート上で、行単位でCopyRangeメソッドおよびSwapRangeメソッドを呼び出すと、非連結列に対するコピーおよび入れ替えが正しく動作しません。
【再現手順】
1.フォーム画面にSPREADシートとボタン2つを配置し、サンプルコードを張り付け、実行します
2.ボタン1を押下し、CopyRangeメソッドを実行します
-- 非連結列の1列目が正しくコピーされません
3.ボタン2SwapRangeメソッドを実行します
-- 非連結列の1列目と4列目が正しく入れ替えられません
■サンプルコード(VB.NET)
【再現手順】
1.フォーム画面にSPREADシートとボタン2つを配置し、サンプルコードを張り付け、実行します
2.ボタン1を押下し、CopyRangeメソッドを実行します
-- 非連結列の1列目が正しくコピーされません
3.ボタン2SwapRangeメソッドを実行します
-- 非連結列の1列目と4列目が正しく入れ替えられません
■サンプルコード(VB.NET)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dt As DataTable = New DataTable("Test")
dt.Columns.Add("ColA", GetType(String))
dt.Columns.Add("ColB", GetType(String))
For i = 0 To 5 - 1
dt.Rows.Add($"A{i}", $"B{i}")
Next
dt.AcceptChanges()
FpSpread1.ActiveSheet.ColumnCount = 4
FpSpread1.ActiveSheet.Columns(0, FpSpread1.ActiveSheet.ColumnCount - 1).Width = 50
FpSpread1.ActiveSheet.AutoGenerateColumns = False
FpSpread1.ActiveSheet.DataAutoSizeColumns = False
FpSpread1.ActiveSheet.Columns(1).DataField = "ColA"
FpSpread1.ActiveSheet.Columns(2).DataField = "ColB"
FpSpread1.ActiveSheet.DataSource = dt
FpSpread1.ActiveSheet.SetValue(0, 0, "追加1")
FpSpread1.ActiveSheet.SetValue(0, 3, "追加2")
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
FpSpread1.ActiveSheet.CopyRange(0, 0, 1, 0, 1, 4, False)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
FpSpread1.ActiveSheet.SwapRange(0, 0, 2, 0, 1, 4, False)
End Sub
Dim dt As DataTable = New DataTable("Test")
dt.Columns.Add("ColA", GetType(String))
dt.Columns.Add("ColB", GetType(String))
For i = 0 To 5 - 1
dt.Rows.Add($"A{i}", $"B{i}")
Next
dt.AcceptChanges()
FpSpread1.ActiveSheet.ColumnCount = 4
FpSpread1.ActiveSheet.Columns(0, FpSpread1.ActiveSheet.ColumnCount - 1).Width = 50
FpSpread1.ActiveSheet.AutoGenerateColumns = False
FpSpread1.ActiveSheet.DataAutoSizeColumns = False
FpSpread1.ActiveSheet.Columns(1).DataField = "ColA"
FpSpread1.ActiveSheet.Columns(2).DataField = "ColB"
FpSpread1.ActiveSheet.DataSource = dt
FpSpread1.ActiveSheet.SetValue(0, 0, "追加1")
FpSpread1.ActiveSheet.SetValue(0, 3, "追加2")
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
FpSpread1.ActiveSheet.CopyRange(0, 0, 1, 0, 1, 4, False)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
FpSpread1.ActiveSheet.SwapRange(0, 0, 2, 0, 1, 4, False)
End Sub
回避方法
Service Pack 3(v12.0.4504.2012)で修正済み。
旧文書番号
84714