DioDocs for Excel
DioDocs for Excel
セル範囲の切り取りまたはコピー
機能 > ワークシート > 範囲の操作 > セル範囲の切り取りまたはコピー

DioDocs for Excel には、ある領域からセルまたはセル範囲を切り取りまたはコピーし、同じワークシート内の別の領域に貼り付ける機能があります。また、セル範囲からデータをコピーする際、複数の貼り付けオプションを使用したり、さまざまな貼り付けオプションを組み合わせたりすることもできます。

セル範囲からデータをコピーするには、次のセクションを使用します。

複数のシート間でデータを切り取りまたはコピーするには、「シート間の切り取りとコピー」を参照してください。

セル範囲のコピー

DioDocs for Excel では、IRangeCopyメソッドを呼び出すことで、ワークシート内のセルまたはセル範囲をコピーできます。単一のセルまたはセル範囲をコピーするには、たとえば B3:D12 のように、コピーするセル範囲を指定します。

DioDocs for Excel では、さまざまな方法でCopyメソッドを使用できます。

説明
Copy(sheet.Range["E5"]) このメソッドは、セル範囲 B3:D12 からコピーしたデータを E5 以降のセルに貼り付けます。
Copy(sheet.Range["E5:G14"]) このメソッドは、セル範囲 B3:D12 からコピーしたデータをセル範囲 E5:G14 に貼り付けます。コピーされたセル範囲が貼り付け先のセル範囲に収まらない場合、そのデータは失われます。

ワークブックでセル範囲をコピーする方法については、次のサンプルコードを参照してください。

C#
コードのコピー
//セルの範囲のデータをコピーします
worksheet.Range["B3:D12"].Copy(worksheet.Range["E5"]);
//または、
worksheet.Range["B3:D12"].Copy(worksheet.Range["E5:G14"]);

貼り付けオプションの使用

ユーザーが、セル範囲からデータをコピーする際に貼り付けのオプションを使用することができます。PasteType列挙体には、以下のオプションがあり、複数の貼り付けオプションを処理するために使用できます。

オプション 説明
Default 行の高さと列の幅を除いてすべてのセルデータをコピー先の選択範囲に貼り付けます。
Values コピー先の選択範囲にセル値のみを貼り付けます。
Formulas 数式セルの場合、コピー先の選択範囲に数式を貼り付けます。数式以外のセルの場合、コピー先の選択範囲にセル値を貼り付けます。
Formats 書式設定を貼り付けます。
NumberFormats 数値の書式設定を貼り付けます。
RowHeights コピー先の選択範囲に行の高さを貼り付けます。
ColumnWidths コピー先の選択範囲に列の幅を貼り付けます。

2種 類の異なる貼り付けオプションを組み合わせて用 いることもできます。 たとえば、ワークシートにセル値のみと数値の書式を同時に貼り付ける場合は、PasteType.Values | PasteType.NumberFormatsPasteType.Formulas | PasteType.NumberFormats のような組み合わせを使用できます。同様に、他の貼り付けオプションの組み合わせも可能です。

ワークブック内のセル範囲からデータをコピーするときに貼り付けオプションの組み合わせを使用し、コピー先に貼り付ける方法方法については、次のサンプルコードを参照してください。

C#
コードのコピー
//ワークブックを初期化します
Workbook workbook = new Workbook();
        
//既定のワークシートを取得します 
IWorksheet worksheet = workbook.Worksheets[0];
 
//PCのデータ を設定します
worksheet.Range["A2"].Value = "PC";
worksheet.Range["A4:C4"].Value = new string[] 
{ 
  "Device", "Quantity", "Unit Price" 
};
worksheet.Range["A5:C10"].Value = new object[,] 
{
 { "T540p", 12, 9850 },
 { "T570", 5, 7460 },
 { "Y460", 6, 5400 },
 { "Y460F", 8, 6240 }
};

//スタイルを設定します
worksheet.Range["A2"].RowHeight = 30;
worksheet.Range["A2"].ColumnWidth = 40;
worksheet.Range["A2"].Font.Size = 20;
worksheet.Range["A2"].Font.Bold = true;
worksheet.Range["A4:C4"].Font.Bold = true;
worksheet.Range["A4:C4"].Font.Color = Color.White;
worksheet.Range["A4:C4"].Interior.Color = 
Color.LightBlue;
worksheet.Range["A5:C10"].Borders[BordersIndex.InsideHorizontal].Color = 
Color.Orange;
worksheet.Range["A5:C10"].Borders[BordersIndex.InsideHorizontal].LineStyle = 
BorderLineStyle.DashDot;

//セル「A2:C10」からスタイル設定と行高さのみをコピーします
worksheet.Range["H1"].Value = "Copy style & row height from previous cells.";
worksheet.Range["H1"].Font.Color = Color.Red;
worksheet.Range["H1"].Font.Bold = true;
worksheet.Range["A2:C10"].Copy(worksheet.Range["H2"], 
PasteType.Formats | PasteType.ColumnWidths);

//モバイルデバイスのデータを設定します
worksheet.Range["H2"].Value = "Mobile";
worksheet.Range["H4:J4"].Value = new string[] 
{ 
  "Device", "Quantity", "Unit Price" 
};
worksheet.Range["H5:J10"].Value = new object[,] 
{
 { "HW-P30", 20, 4200 },
 { "IPhone-X", 5, 9888 },
 { "IPhone-6s plus", 15, 6880 }
};

//新しいシートを追加します
IWorksheet worksheet2 = workbook.Worksheets.Add();

//新しいシートにセル「A2:C10」のスタイル設定のみをコピーします
worksheet.Range["A2:C10"].Copy(worksheet2.Range["A2"], 
PasteType.Formats | PasteType.ColumnWidths);
worksheet2.Range["A3"].Value = "Copy style from sheet1.";
worksheet2.Range["A3"].Font.Color = Color.Red;
worksheet2.Range["A3"].Font.Bold = true;

//xlsxにワークブックを保存します
workbook.Save(@"PasteOptionsEnhancements.xlsx", SaveFileFormat.Xlsx);

セル範囲の切り取り

DioDocs for Excel では、IRangeCutメソッドを呼び出すことで、ワークシート内のセルまたはセル範囲を切り取ることができます。セルまたはセル範囲を切り取るには、たとえば B3:D12 のように、移動するセル範囲を指定します。

DioDocs for Excel では、さまざまな方法で Cut メソッドを使用できます。

説明
Cut(sheet.Range["E5"]) このメソッドは、セル範囲 B3:D12 から切り取ったデータを E5 以降のセルに貼り付けます。
Cut(sheet.Range["E5:G14"]) このメソッドは、セル範囲 B3:D12 から切り取ったデータをセル範囲 E5:G14 に貼り付けます。切り取られたセル範囲が貼り付け先のセル範囲に収まらない場合、そのデータは失われます。

ワークブック内のセル範囲を切り取る方法については、次のサンプルコードを参照してください。

C#
コードのコピー
//セルの範囲のデータを切り取ります
worksheet.Range["B3:D12"].Cut(worksheet.Range["E5"]);
//または、
worksheet.Range["B3:D12"].Cut(worksheet.Range["E5:G14"]);

関連トピック