SPREAD for WPF 4.0J - GcSpreadSheet
セル範囲のコピー
MESCIUS SPREAD for WPF 4.0J - GcSpreadSheet > 開発者ガイド > コピー/ペースト > セル範囲のコピー

GcSpreadSheet は強力かつ柔軟なコピー機能を提供しており、データ、書式、数式、その他のセル内容を、1 つまたは複数のセル範囲から指定されたターゲット範囲、またはシステムクリップボードにコピーできます。

IRange インターフェースの Copy() メソッドを使用することで、さまざまなデータ処理シナリオに対応する複数のオーバーロードから選択し、多様なコピー要件を満たすことができます。

 指定したセル位置へのデータコピー

ソースセル範囲からターゲット位置にデータやスタイルをコピーできます。コピー先は指定した行番号および列番号から開始します。オプションの ManipulationOptions パラメーターを使用すると、コピーする内容の種類(値のみ、書式、数式、または全内容など)を制御できます。

コードのコピー
// データを設定します。
spreadSheet1.Workbook.ActiveSheet.Cells["A1"].Value = 10;
spreadSheet1.Workbook.ActiveSheet.Cells["A2"].Value = 20;
spreadSheet1.Workbook.ActiveSheet.Cells["A1:A2"].Font.Color = GrapeCity.Spreadsheet.Color.FromArgb(255, 0, 0);
spreadSheet1.Workbook.ActiveSheet.Cells["A1:A2"].Font.Italic = true;
spreadSheet1.Workbook.ActiveSheet.Cells["B1"].Value = 1;
spreadSheet1.Workbook.ActiveSheet.Cells["B2"].Value = 2;

// 値のみをC3:D4にコピーします。
spreadSheet1.Workbook.ActiveSheet.Cells["A1:B2"].Copy(3, 3, GrapeCity.Spreadsheet.ManipulationOptions.Values);

// すべての内容をC3:D4にコピーします。
spreadSheet1.Workbook.ActiveSheet.Cells["A1:B2"].Copy(3, 3, GrapeCity.Spreadsheet.ManipulationOptions.All);                       
コードのコピー
' データを設定します。
spreadSheet1.Workbook.ActiveSheet.Cells("A1").Value = 10
spreadSheet1.Workbook.ActiveSheet.Cells("A2").Value = 20
spreadSheet1.Workbook.ActiveSheet.Cells("A1:A2").Font.Color = GrapeCity.Spreadsheet.Color.FromArgb(255, 0, 0)
spreadSheet1.Workbook.ActiveSheet.Cells("A1:A2").Font.Italic = True
spreadSheet1.Workbook.ActiveSheet.Cells("B1").Value = 1
spreadSheet1.Workbook.ActiveSheet.Cells("B2").Value = 2

' 値のみをC3:D4にコピーします。
spreadSheet1.Workbook.ActiveSheet.Cells("A1:B2").Copy(3, 3, GrapeCity.Spreadsheet.ManipulationOptions.Values)

' すべての内容をC3:D4にコピーします。
spreadSheet1.Workbook.ActiveSheet.Cells("A1:B2").Copy(3, 3, GrapeCity.Spreadsheet.ManipulationOptions.All)
 既存セル範囲へのデータコピー

ソース範囲の内容を定義済みのターゲットセル範囲にコピーできます。これは、コピー先の範囲を正確に制御する必要があるシナリオに有用です。

コードのコピー
IRange currentRange = spreadSheet1.Workbook.ActiveSheet.Cells["A1:B2"];
IRange targetRange = spreadSheet1.Workbook.ActiveSheet.Cells["D1:E2"];
currentRange.Copy(targetRange);                   
コードのコピー
Dim currentRange As IRange = spreadSheet1.Workbook.ActiveSheet.Cells("A1:B2")
Dim targetRange As IRange = spreadSheet1.Workbook.ActiveSheet.Cells("D1:E2")
currentRange.Copy(targetRange)
 文字列で指定したターゲット範囲へのデータコピー

標準のセル参照形式(例:"A1:B2")の文字列を使用してターゲット範囲を指定し、迅速にコピー操作を行えます。

コードのコピー
spreadSheet1.Workbook.ActiveSheet.Cells["A1:B2"].Copy("E1:F2");           
コードのコピー
spreadSheet1.Workbook.ActiveSheet.Cells("A1:B2").Copy("E1:F2")
 システムクリップボードへのコピー

選択セル範囲をシステムクリップボードにコピーし、アプリケーション間で貼り付けを行えます。オプションパラメーターを使用して、コピー UI を表示するかどうか、また非表示範囲を除外するかどうかを制御できます。

コードのコピー
// UIを表示せず、非表示の範囲を除外してデータをクリップボードにコピーします。
spreadSheet1.Workbook.ActiveSheet.Cells["A1:B2"].Copy(showUI: false, excludeHidden: true);

// クリップボードにコピーする際にコピーUIを表示します。
spreadSheet1.Workbook.ActiveSheet.Cells["A1:B2"].Copy(showUI: true);                 
コードのコピー
' UIを表示せず、非表示の範囲を除外してデータをクリップボードにコピーします。
spreadSheet1.Workbook.ActiveSheet.Cells("A1:B2").Copy(showUI:=False, excludeHidden:=True)

' クリップボードにコピーする際にコピーUIを表示します。
spreadSheet1.Workbook.ActiveSheet.Cells("A1:B2").Copy(showUI:=True)