PowerTools SPREAD for Windows Forms 8.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
関連トピック

 

 


© 2004-2015, GrapeCity inc. All rights reserved.