PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > セル > セルデータ > データの交換 |
2つのセルまたはセル範囲の内容を交換できます。
セル間またはセル範囲間でデータを交換すると、データだけでなく、セルの各種設定も交換されます。セル自体にではなく、このセルを含む列、行、またはスプレッドシートに対して適用した設定は、交換対象に含まれません。たとえば、交換元のセルの背景を赤に設定していた場合、この背景色も交換され、交換先のセルの背景色は赤になります。しかし、交換元のセルを含む列の背景色を赤に設定していた場合は、この背景色は交換されません。
セル間でデータを交換すると、交換元セルのデータは交換先セルのデータとなり、交換先セルのデータは交換元セルのデータとなります。 たとえば、A1セルが「4」、B3セルが「6」という値を保持する場合、この2つのセル値を交換すると、A1セルの値が「6」、B3セルの値が「4」になります。
交換元のセル範囲と同じサイズのブロックを、交換先の場所に確保できない場合、セルの交換は行われません。 たとえば、4つのセルから成るセル範囲の交換先に、シート末尾のセルを指定すると、セルの交換は行われません。
対象のセル範囲が重複する場合、たとえば、2行目と3行目を1行目の前に移動する場合、行を追加してデータを移動し、移動後に余分な行を削除することで可能です。
データの交換や移動に関するメソッドは、以下のとおりです。
セル範囲のデータを交換する場合、数式を自動更新するかどうかを指定できます。 詳細については、「自動再計算と自動更新」を参照してください。
次のサンプルコードはセル範囲のデータを交換します。
C# |
コードのコピー
|
---|---|
private void Form1_Load(object sender, System.EventArgs e) { fpSpread1.ActiveSheet.RowCount = 10; fpSpread1.ActiveSheet.ColumnCount = 10; } private void button1_Click(object sender, System.EventArgs e) { fpSpread1.ActiveSheet.SwapRange(0, 0, 3, 0, 3, 3, true); } |
Visual Basic |
コードのコピー
|
---|---|
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load FpSpread1.ActiveSheet.RowCount = 10 FpSpread1.ActiveSheet.ColumnCount = 10 End Sub Private Sub void button1_Click(sender As Object, e As System.EventArgs) FpSpread1.ActiveSheet.SwapRange(0, 0, 3, 0, 3, 3, True) End Sub |
次のサンプルコードは行を追加し、セル範囲のデータを移動してから余分な行を削除します。
C# |
コードのコピー
|
---|---|
private void Form1_Load(object sender, System.EventArgs e) { fpSpread1.ActiveSheet.RowCount = 10; fpSpread1.ActiveSheet.ColumnCount = 10; } private void button1_Click(object sender, System.EventArgs e) { fpSpread1.ActiveSheet.Rows[0,1].Add() ; fpSpread1.ActiveSheet.MoveRange(3,0,0,0,2,4,true); fpSpread1.ActiveSheet.Rows[3,4].Remove(); } |
Visual Basic |
コードのコピー
|
---|---|
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load FpSpread1.ActiveSheet.RowCount = 10 FpSpread1.ActiveSheet.ColumnCount = 10 End Sub Private Sub void button1_Click(sender As Object, e As System.EventArgs) FpSpread1.ActiveSheet.Rows(0,1).Add() FpSpread1.ActiveSheet.MoveRange(3,0,0,0,2,4,True) FpSpread1.ActiveSheet.Rows(3,4).Remove() End Sub |