作成日: 2024/02/21 最終更新日: 2024/02/21
文書種別
使用方法
詳細
SheetViewクラスのCopyRangeメソッドを使用することで、行や列、セル範囲を指定してセル情報をコピーすることができます。
ただ、CopyRangeメソッドではデータを含めずセルのスタイルのみをコピーすることができません。
セルのスタイルのみをコピーしたい場合には、CopyRangeメソッド実行後、ペースト範囲に対してClearRangeメソッドでデータを削除する対応が考えられます。
以下では、ボタンイベントでそれぞれ行、列、セル範囲のコピー処理を実行します。
◎サンプルコード(VB)
Imports FarPoint.Win
Imports FarPoint.Win.Spread
Imports FarPoint.Win.Spread.CellType
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FpSpread1.ActiveSheet.RowCount = 10
FpSpread1.ActiveSheet.ColumnCount = 20
'--------------------------------
'行高,列幅の設定
'--------------------------------
FpSpread1.ActiveSheet.Rows(0).Height = 40
FpSpread1.ActiveSheet.Columns(1).Width = 150
'--------------------------------
'背景色, 罫線, 配置の設定
'--------------------------------
FpSpread1.ActiveSheet.Cells(0, 0).BackColor = Color.Red
FpSpread1.ActiveSheet.Cells(0, 2).Border = New BevelBorder(BevelBorderType.Raised, Color.Red, Color.Blue)
FpSpread1.ActiveSheet.Cells(0, 3).BackColor = Color.Yellow
FpSpread1.ActiveSheet.Rows(0).VerticalAlignment = CellVerticalAlignment.Center
'--------------------------------
'型,データの設定
'--------------------------------
Dim cb As New ComboBoxCellType
cb.Items = New String() {"aa", "bb"}
FpSpread1.ActiveSheet.Cells(0, 1).CellType = cb
FpSpread1.ActiveSheet.Cells(0, 0).Text = "赤"
FpSpread1.ActiveSheet.Cells(0, 1).Text = "aa"
FpSpread1.ActiveSheet.Cells(0, 2).Text = "罫線設定"
FpSpread1.ActiveSheet.Cells(0, 3).Text = "結合セル"
'--------------------------------
'セルの結合
'--------------------------------
FpSpread1.ActiveSheet.AddSpanCell(0, 3, 1, 2)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'1行目を4行目にコピーする
FpSpread1.ActiveSheet.CopyRange(0, -1, 3, -1, 1, FpSpread1.ActiveSheet.ColumnCount - 1, False)
'4行目のデータのみ削除する
'FpSpread1.ActiveSheet.ClearRange(3,-1, 1, FpSpread1.ActiveSheet.ColumnCount - 1, True)
Imports FarPoint.Win.Spread
Imports FarPoint.Win.Spread.CellType
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FpSpread1.ActiveSheet.RowCount = 10
FpSpread1.ActiveSheet.ColumnCount = 20
'--------------------------------
'行高,列幅の設定
'--------------------------------
FpSpread1.ActiveSheet.Rows(0).Height = 40
FpSpread1.ActiveSheet.Columns(1).Width = 150
'--------------------------------
'背景色, 罫線, 配置の設定
'--------------------------------
FpSpread1.ActiveSheet.Cells(0, 0).BackColor = Color.Red
FpSpread1.ActiveSheet.Cells(0, 2).Border = New BevelBorder(BevelBorderType.Raised, Color.Red, Color.Blue)
FpSpread1.ActiveSheet.Cells(0, 3).BackColor = Color.Yellow
FpSpread1.ActiveSheet.Rows(0).VerticalAlignment = CellVerticalAlignment.Center
'--------------------------------
'型,データの設定
'--------------------------------
Dim cb As New ComboBoxCellType
cb.Items = New String() {"aa", "bb"}
FpSpread1.ActiveSheet.Cells(0, 1).CellType = cb
FpSpread1.ActiveSheet.Cells(0, 0).Text = "赤"
FpSpread1.ActiveSheet.Cells(0, 1).Text = "aa"
FpSpread1.ActiveSheet.Cells(0, 2).Text = "罫線設定"
FpSpread1.ActiveSheet.Cells(0, 3).Text = "結合セル"
'--------------------------------
'セルの結合
'--------------------------------
FpSpread1.ActiveSheet.AddSpanCell(0, 3, 1, 2)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'1行目を4行目にコピーする
FpSpread1.ActiveSheet.CopyRange(0, -1, 3, -1, 1, FpSpread1.ActiveSheet.ColumnCount - 1, False)
'4行目のデータのみ削除する
'FpSpread1.ActiveSheet.ClearRange(3,-1, 1, FpSpread1.ActiveSheet.ColumnCount - 1, True)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'1列目から4列目までを5列目以降にコピーする
FpSpread1.ActiveSheet.CopyRange(-1, 0, -1, 6, FpSpread1.ActiveSheet.RowCount - 1, 5, False)
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'1列目から4列目までを5列目以降にコピーする
FpSpread1.ActiveSheet.CopyRange(-1, 0, -1, 6, FpSpread1.ActiveSheet.RowCount - 1, 5, False)
' 5列目から5列分のデータを削除する
'FpSpread1.ActiveSheet.ClearRange(-1, 6, FpSpread1.ActiveSheet.RowCount - 1, 5, True)
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'(0,0)から(0,4)までの範囲を(2,3)セルにコピーする(行高・列幅情報はコピーされません)
FpSpread1.ActiveSheet.CopyRange(0, 0, 2, 3, 1, 5, False)
'FpSpread1.ActiveSheet.ClearRange(-1, 6, FpSpread1.ActiveSheet.RowCount - 1, 5, True)
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'(0,0)から(0,4)までの範囲を(2,3)セルにコピーする(行高・列幅情報はコピーされません)
FpSpread1.ActiveSheet.CopyRange(0, 0, 2, 3, 1, 5, False)
'(2,3)から(2,7)までの範囲のデータを削除する
'FpSpread1.ActiveSheet.ClearRange(2, 3, 1, 5, True)
End Sub
End Class
'FpSpread1.ActiveSheet.ClearRange(2, 3, 1, 5, True)
End Sub
End Class
◎サンプルコード(C#)
using FarPoint.Win;
using FarPoint.Win.Spread;
using FarPoint.Win.Spread.CellType;
using System;
using System.Drawing;
using System.Windows.Forms;
private void Form1_Load(object sender, EventArgs e)
{
fpSpread1.ActiveSheet.RowCount = 10;
fpSpread1.ActiveSheet.ColumnCount = 20;
//--------------------------------
//行高,列幅の設定
//--------------------------------
fpSpread1.ActiveSheet.Rows[0].Height = 40;
fpSpread1.ActiveSheet.Columns[1].Width = 150;
//--------------------------------
//背景色, 罫線, 配置の設定
//--------------------------------
fpSpread1.ActiveSheet.Cells[0, 0].BackColor = Color.Red;
fpSpread1.ActiveSheet.Cells[0, 2].Border = new BevelBorder(BevelBorderType.Raised, Color.Red, Color.Blue);
fpSpread1.ActiveSheet.Cells[0, 3].BackColor = Color.Yellow;
fpSpread1.ActiveSheet.Rows[0].VerticalAlignment = CellVerticalAlignment.Center;
//--------------------------------
//型,データの設定
//--------------------------------
var cb = new ComboBoxCellType();
cb.Items = new String[] { "aa", "bb" };
fpSpread1.ActiveSheet.Cells[0, 1].CellType = cb;
fpSpread1.ActiveSheet.Cells[0, 0].Text = "赤";
fpSpread1.ActiveSheet.Cells[0, 1].Text = "aa";
fpSpread1.ActiveSheet.Cells[0, 2].Text = "罫線設定";
fpSpread1.ActiveSheet.Cells[0, 3].Text = "結合セル";
//--------------------------------
//セルの結合
//--------------------------------
fpSpread1.ActiveSheet.AddSpanCell(0, 3, 1, 2);
}
private void button1_Click(object sender, EventArgs e)
{
//1行目を4行目にコピーする
fpSpread1.ActiveSheet.CopyRange(0, -1, 3, -1, 1, fpSpread1.ActiveSheet.ColumnCount - 1, false);
using FarPoint.Win.Spread;
using FarPoint.Win.Spread.CellType;
using System;
using System.Drawing;
using System.Windows.Forms;
private void Form1_Load(object sender, EventArgs e)
{
fpSpread1.ActiveSheet.RowCount = 10;
fpSpread1.ActiveSheet.ColumnCount = 20;
//--------------------------------
//行高,列幅の設定
//--------------------------------
fpSpread1.ActiveSheet.Rows[0].Height = 40;
fpSpread1.ActiveSheet.Columns[1].Width = 150;
//--------------------------------
//背景色, 罫線, 配置の設定
//--------------------------------
fpSpread1.ActiveSheet.Cells[0, 0].BackColor = Color.Red;
fpSpread1.ActiveSheet.Cells[0, 2].Border = new BevelBorder(BevelBorderType.Raised, Color.Red, Color.Blue);
fpSpread1.ActiveSheet.Cells[0, 3].BackColor = Color.Yellow;
fpSpread1.ActiveSheet.Rows[0].VerticalAlignment = CellVerticalAlignment.Center;
//--------------------------------
//型,データの設定
//--------------------------------
var cb = new ComboBoxCellType();
cb.Items = new String[] { "aa", "bb" };
fpSpread1.ActiveSheet.Cells[0, 1].CellType = cb;
fpSpread1.ActiveSheet.Cells[0, 0].Text = "赤";
fpSpread1.ActiveSheet.Cells[0, 1].Text = "aa";
fpSpread1.ActiveSheet.Cells[0, 2].Text = "罫線設定";
fpSpread1.ActiveSheet.Cells[0, 3].Text = "結合セル";
//--------------------------------
//セルの結合
//--------------------------------
fpSpread1.ActiveSheet.AddSpanCell(0, 3, 1, 2);
}
private void button1_Click(object sender, EventArgs e)
{
//1行目を4行目にコピーする
fpSpread1.ActiveSheet.CopyRange(0, -1, 3, -1, 1, fpSpread1.ActiveSheet.ColumnCount - 1, false);
// 4行目のデータのみ削除する
//fpSpread1.ActiveSheet.ClearRange(3, -1, 1, fpSpread1.ActiveSheet.ColumnCount - 1, true);
}
private void button2_Click(object sender, EventArgs e)
{
//1列目から4列目までを5列目以降にコピーする
fpSpread1.ActiveSheet.CopyRange(-1, 0, -1, 6, fpSpread1.ActiveSheet.RowCount - 1, 5, false);
//fpSpread1.ActiveSheet.ClearRange(3, -1, 1, fpSpread1.ActiveSheet.ColumnCount - 1, true);
}
private void button2_Click(object sender, EventArgs e)
{
//1列目から4列目までを5列目以降にコピーする
fpSpread1.ActiveSheet.CopyRange(-1, 0, -1, 6, fpSpread1.ActiveSheet.RowCount - 1, 5, false);
// 5列目から5列分のデータを削除する
//fpSpread1.ActiveSheet.ClearRange(-1, 6, fpSpread1.ActiveSheet.RowCount - 1, 5, true);
}
private void button3_Click(object sender, EventArgs e)
{
//(0,0)から(0,4)までの範囲を(2,3)セルにコピーする(行高・列幅情報はコピーされません)
fpSpread1.ActiveSheet.CopyRange(0, 0, 2, 3, 1, 5, false);
//fpSpread1.ActiveSheet.ClearRange(-1, 6, fpSpread1.ActiveSheet.RowCount - 1, 5, true);
}
private void button3_Click(object sender, EventArgs e)
{
//(0,0)から(0,4)までの範囲を(2,3)セルにコピーする(行高・列幅情報はコピーされません)
fpSpread1.ActiveSheet.CopyRange(0, 0, 2, 3, 1, 5, false);
// (2,3)から(2,7)までの範囲のデータを削除する
//fpSpread1.ActiveSheet.ClearRange(2, 3, 1, 5, true);
}
//fpSpread1.ActiveSheet.ClearRange(2, 3, 1, 5, true);
}
関連情報