C#でセルをコピーする方法 with IronXL
IronXLは、Excelスプレッドシートでセル、範囲、行、または列をコピーする際に、ページ設定やスタイリングを全て保持しつつ、任意の場所やワークシート間でデータを複製する単一のCopyメソッドを使用できます。
セルのコピー"機能は、セルの内容を複製し、他のセルに貼り付けます。 ワークシート内のデータ、数式、書式、その他の属性を複製します。 ゼロからスプレッドシートを作成する場合でも、既存の Excel ファイルをロードする場合でも、コピー機能は効率的なデータ操作に不可欠です。
クイックスタート: 1行で列または範囲をコピー単一のセル、行、列、またはブロックなどの範囲全体を、1つのメソッド呼び出しでシートから別のシートにコピーします。 Copy関数は、スタイリングとフォーマットを保持しながら、Excelオートメーションを迅速かつ簡単に行います。
-
1Install IronXL with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1") -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronXL を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- セルをコピーするためのC#ライブラリをダウンロードする
- 既存のExcelスプレッドシートをロードする
- コピーしたい範囲、行、または列を選択してください
- 選択範囲に対して
Copyメソッドを呼び出す - コピー先のワークシートと位置を
Copyメソッドに渡します。
Excelで1つのセルをコピーするには?
選択したセルの内容をコピーするには、Copyメソッドを使用してください。 ワークシートオブジェクトを最初のパラメーターとして渡し、開始位置を2番目のパラメーターとして渡します。 Copyメソッドは、フォントとサイズ、背景パターンと色、および境界線と配置を含むすべてのスタイリングを保持します。
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Copy cell content
workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet1"), "B3");
workBook.SaveAs("copySingleCell.xlsx");Imports IronXL
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Copy cell content
workSheet("A1").Copy(workBook.GetWorkSheet("Sheet1"), "B3")
workBook.SaveAs("copySingleCell.xlsx")コピー時に保存される書式は何ですか?
Copyメソッドは、以下を含むすべてのセルプロパティを保持します:
Cellの値と数式- 数値フォーマット(通貨、パーセンテージ、日付)
- フォントスタイリング(書体、サイズ、太字、斜体、色)
- セルの枠線と背景色
- テキストアライメント(水平および垂直)
- セル保護設定
この包括的な保存により、Microsoft ExcelでC#とCtrl+Vを使用するのと同様に、コピーされたセルが元の外観と機能を維持することが保証されます。

なぜコピー メソッドは 2 つのパラメータを取るのですか
Copyメソッドは、正確な制御のために2つのパラメータを必要とします。
- ワークシートパラメータ: 目的地のワークシートを指定します(ワークブック内で同じか異なる)
- アドレスパラメータ: 貼り付けるコンテンツの開始セル位置を定義します
このデザインでは、同じシート内または異なるシート間で柔軟にコピーできるため、サマリーレポートの作成や複数のソースからのデータの統合に最適です。
シングルセルコピーと範囲コピーのどちらを使うべきか
次のような場合は、シングルセルコピーを選択してください:
- 個々の値または数式を複製する
- ヘッダーセルまたはラベルをコピーする
- 特定の計算された結果を複製する
- サマリ値を操作する
以下のような場合にレンジコピーを使用してください:
- 完全なデータテーブルを移動する
- 関連する複数のセルを複製する
- 完全な行または列をコピーする
- データ関係の保持
複数のセルまたは範囲をコピーするにはどうすればよいですか?
Rangeクラスで利用可能で、任意の範囲サイズでの実行を可能にします。範囲を選択する際には、IronXLは柔軟なコピーオプションを提供します:
-
単一のセルをコピーする(
C10):workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");workSheet("C10").Copy(workBook.GetWorkSheet("Sheet1"), "B13") -
列をコピーする(
A):workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1") -
行をコピーする(
4):workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15") -
2次元の範囲をコピーする(
D6:F8):workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");workSheet("D6:F8").Copy(workBook.GetWorkSheet("Sheet1"), "H17")
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Copy a single cell(C10)
workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");
// Copy a column(A)
workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");
// Copy a row(4)
workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");
// Copy a two-dimensional range(D6:F8)
workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");
workBook.SaveAs("copyCellRange.xlsx");Imports IronXL
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Copy a single cell(C10)
workSheet("C10").Copy(workBook.GetWorkSheet("Sheet1"), "B13")
' Copy a column(A)
workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1")
' Copy a row(4)
workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15")
' Copy a two-dimensional range(D6:F8)
workSheet("D6:F8").Copy(workBook.GetWorkSheet("Sheet1"), "H17")
workBook.SaveAs("copyCellRange.xlsx")宛先範囲が小さすぎるとどうなりますか
IronXLは自動的にサイズの違いを処理します:
- 目的地のパラメータは、左上の開始セルのみを指定します
- ソース範囲全体が目的地のサイズに関係なくコピーされます
- 目的地エリアの既存のデータは上書きされます
- コピー操作は、すべてのソースデータを収容するために拡張されます
例えば、3x3の範囲をセルB1:D3が埋められ、既存のコンテンツが上書きされます。
行と列の参照はどのように機能しますか?
IronXLは、GetColumn()メソッドで、行および列に対して0ベースインデックスを使用します:
GetColumn(0)は列Aを指しますGetColumn(1)は列Bを指しますGetRow(0)は行1を指しますGetRow(3)は行4を指します
このインデックス付けは、標準的な C# 配列の規約に沿ったものです。
なぜGetRow()メソッドを使用するのか?
GetRow()メソッドは以下を提供します:
- パフォーマンス:全行または全列に対してより効率的
- 明快さ:コードの意図を明確にします
- 柔軟性:すべての範囲操作をサポートする
Rangeオブジェクトを返します - 便利さ:完全な選択のために終了セルを計算する必要がありません
これらの方法は、列の完全なコピーを必要とするレポートを作成する場合や、行のテンプレートを複製する場合に優れています。

異なるワークシート間でセルをコピーするには?
最初のパラメータはワークシートオブジェクトを受け入れ、異なるワークシート間でのコピー&ペーストを可能にします。 最初のパラメータとして、別のワークシートオブジェクトを渡してください。 複数のワークシートを管理するときや、詳細なデータからサマリーシートを作成するときに、この機能は不可欠です。
workBook.GetWorksheet("Sheet2")
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Copy cell content
workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet2"), "B3");
workBook.SaveAs("copyAcrossWorksheet.xlsx");Imports IronXL
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Copy cell content
workSheet("A1").Copy(workBook.GetWorkSheet("Sheet2"), "B3")
workBook.SaveAs("copyAcrossWorksheet.xlsx")一般的なクロスワークシートコピーシナリオとは
このようなシナリオでは、ワークシート間のコピーが頻繁に使用されます:
- サマリシートの作成: 詳細シートからキー指標をダッシュボードにコピーします
- テンプレートの複製: フォーマットされたテンプレートを新しいワークシートにコピーします
- データ統合: 部門シートからデータを集め、マスターシートにまとめます
- レポート生成: フィルタリングされた結果を別のレポート作成ワークシートにコピーします
- バックアップ操作: 重要なデータをバックアップシートに複製します
他のセルを参照する数式を扱う場合、IronXLは絶対参照を維持したまま、新しい位置に基づいて相対参照を自動的に調整します。
新しいワークシートと既存のワークシートでは、いつコピーすべきですか?
以下の場合、新しいワークシートにコピーしてください:。
- 定期的なレポートの作成(日次、週次、月次)
- 生データから処理済みデータを分離する
- ソースデータから分析ワークシートを作成する
- ユーザー固有のデータビューを生成する
以下の場合、既存のワークシートにコピーしてください:。
- 進行中のログにデータを追加する
- ダッシュボードセクションを更新する
- 複数のデータソースを統合する
- 履歴記録を維持する
複数のシートを含む複雑なシナリオでは、高度なデータ操作のためにデータセットとデータテーブルを扱うIronXLの機能を使うことを検討してください。
ワークシートの名前の競合をどのように処理しますか?
ワークシート間でコピーする際に、適切なワークシート管理を行うこと:
// Check if worksheet exists before copying
if (workBook.GetWorkSheet("TargetSheet") == null)
{
workBook.CreateWorkSheet("TargetSheet");
}
// Safe copy operation
WorkSheet targetSheet = workBook.GetWorkSheet("TargetSheet");
sourceSheet["A1:Z100"].Copy(targetSheet, "A1");Option Strict On
Option Infer On
' Check if worksheet exists before copying
If workBook.GetWorkSheet("TargetSheet") Is Nothing Then
workBook.CreateWorkSheet("TargetSheet")
End If
' Safe copy operation
Dim targetSheet As WorkSheet = workBook.GetWorkSheet("TargetSheet")
sourceSheet("A1:Z100").Copy(targetSheet, "A1")このアプローチは、ランタイムエラーを防ぎ、本番環境でExcelプロセスを自動化する場合に特に重要なコピー操作を確実に成功させます。
よくある質問
C# を使用して Excel で 1 つのセルをコピーするにはどうすればよいですか?
IronXLではCopyメソッドを使って一つのセルをコピーすることができます。コピーしたいセル(例えばworkSheet["A1"])を選択し、コピー先のワークシートとコピー先のセルアドレスをパラメータとしてCopyメソッドを呼び出すだけです。IronXLはコピー操作の間、フォント、色、枠線、数式を含むすべての書式を保持します。
セルをコピーする際、どのような書式が保持されますか?
IronXLのコピーメソッドは、セルの値や数式、数値フォーマット(通貨、パーセンテージ、日付)、フォントスタイル(書体、サイズ、太字、斜体、色)、セルの境界線と背景色、テキストの配置(水平方向と垂直方向)、セルの保護設定を含むすべてのセルプロパティを保持します。これにより、コピーされたセルは元の外観と機能を維持します。
列や範囲全体を一度にコピーできますか?
はい、IronXLでは一回の操作で列、行、範囲全体をコピーすることができます。GetColumn(0).Copy()のようなメソッドを使って列全体をコピーしたり、セル範囲を選択して複数のセルを一度にコピーすることができます。Copy メソッドは、単一のセルからワークシート全体まで、どのような選択サイズでも動作します。
異なるワークシート間でセルをコピーする方法を教えてください。
IronXLではワークシート間のセルのコピーが簡単にできます。Copyメソッドを使用する場合、最初のパラメータとしてコピー先のワークシートを指定し(例えば、workBook.GetWorkSheet("Sheet2"))、2番目のパラメータとしてコピー先のセル・アドレスを指定します。これにより、同じワークブック内の異なるシート間でデータをコピーできます。
Excelでセルをコピーするために最低限必要な手順は何ですか?
IronXLを使えば、セルのコピーはわずか5ステップで完了します:1) IronXL C#ライブラリをダウンロードする、2) 既存のExcelスプレッドシートを読み込む、3) コピーしたい範囲、行、列を選択する、4) 選択した範囲でCopyメソッドを呼び出す、5) コピー先のワークシートと位置をCopyメソッドに渡す。すべての操作は、1行のコードで行うことができます。
What happens if the destination range is smaller than the source when copying cells with IronXL?
When the destination range is smaller, IronXL's `Copy` function still accommodates the full source range by overwriting any existing data in the destination area, expanding as needed to fit all copied data.
Why might I choose to copy to a new worksheet rather than an existing one?
Copying to a new worksheet is recommended for creating periodic reports, isolating processed data, building analysis sheets, and generating user-specific views. This ensures data separation and clarity in reporting.
How do row and column references work in IronXL?
IronXL uses zero-based indexing where `GetColumn(0)` refers to column A, and `GetRow(0)` refers to row 1. This aligns with C# array conventions, making it intuitive for developers familiar with standard C# practices.
What are common scenarios for cross-worksheet copying with IronXL?
Cross-worksheet copying in IronXL is commonly used for creating summary sheets, replicating templates to new sheets, consolidating data from multiple sources, generating reports, and performing backup operations of critical data.
How does IronXL handle worksheet naming conflicts during copy operations?
IronXL manages worksheet naming conflicts by allowing you to check for and create target sheets if they don't exist, ensuring safe copy operations without runtime errors, which is crucial for automating Excel processes.

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。