C#でExcelで範囲を選択する方法 | IronXL

C#でExcelの範囲を選択する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXLはC#開発者がOffice Interopに依存することなくExcelの範囲、行、列を選択、操作することを可能にします。 範囲選択にはworkSheet["A1:C3"]、行にはGetRow()、列にはGetColumn()のような単純な構文をプログラムで使用してください。

クイックスタート: IronXLでセル範囲をワンラインで選択する

IronXLワークシートでGetRangeを一回呼び出すだけで、"A1:C3"のような矩形範囲を取得できます—ループも手間も不要です。 複数のセルを一度に操作する最速の方法です。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronXL をインストールします

    PM > Install-Package IronXL.Excel

  2. このコード スニペットをコピーして実行します。

    var range = workSheet.GetRange("A1:C3");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronXL を使い始めましょう
    arrow pointer


IronXLで異なる種類の範囲を選択するにはどうすればよいですか?

IronXL.Excelでは、ソート、計算、集計など、選択した範囲に対してさまざまな操作を行うことができます。 このライブラリは、Excelのネイティブ機能を反映しつつ、プログラムによる制御を提供する範囲選択のための直感的なメソッドを提供します。

範囲選択はExcelの多くの操作の基礎となります。 数学的計算を実行する場合でも、書式を適用する場合でも、データを抽出する場合でも、正しいセルを選択することが最初のステップです。IronXLは柔軟な範囲選択APIによってこのプロセスを簡単にします。

ご注意セルの値を変更または移動するメソッドを適用すると、影響を受ける範囲、行、または列の値もそれに応じて更新されます。

ヒントIronXL では、 '+' 演算子を使用して複数の IronXL.Ranges.Range を組み合わせることができます。

長方形のセル範囲を選択するにはどうすればよいですか?

セルA2からB8までの範囲を選択するには、次のコードを使用できます:

:path=/static-assets/excel/content-code-examples/how-to/select-range-range.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();

// Get range from worksheet
var range = workSheet["A2:B8"];
$vbLabelText   $csharpLabel
範囲B2:C8をピンクで強調表示したスプレッドシート。サンプルデータのグリッドで視覚的な選択を実演しています。

選択した範囲での作業

一度範囲を選択すると、IronXLは実行できる多くの操作を提供します:

using IronXL;
using System;
using System.Linq;

// Load an existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Select a range and perform operations
var range = workSheet["A1:C5"];

// Apply formatting to the entire range
range.Style.BackgroundColor = "#E8F5E9";
range.Style.Font.Bold = true;

// Iterate through cells in the range
foreach (var cell in range)
{
    Console.WriteLine($"Cell {cell.AddressString}: {cell.Value}");
}

// Get sum of numeric values in the range
decimal sum = range.Sum();
Console.WriteLine($"Sum of range: {sum}");
using IronXL;
using System;
using System.Linq;

// Load an existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Select a range and perform operations
var range = workSheet["A1:C5"];

// Apply formatting to the entire range
range.Style.BackgroundColor = "#E8F5E9";
range.Style.Font.Bold = true;

// Iterate through cells in the range
foreach (var cell in range)
{
    Console.WriteLine($"Cell {cell.AddressString}: {cell.Value}");
}

// Get sum of numeric values in the range
decimal sum = range.Sum();
Console.WriteLine($"Sum of range: {sum}");
$vbLabelText   $csharpLabel

スプレッドシートのより複雑な操作については、包括的な API ドキュメントを参照してください。

行全体を選択するにはどうすればよいですか?

4行目を選択するには、ゼロベースのインデックスを使用してGetRow(3)メソッドを使用できます。 これは、他の行の対応するセルが空であっても、4行目のすべてのセルを含みます。

:path=/static-assets/excel/content-code-examples/how-to/select-range-row.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();

// Get row from worksheet
var row = workSheet.GetRow(3);
$vbLabelText   $csharpLabel
4行目が選択されたスプレッドシート。行選択を示すためにセルB4からF4の周囲に赤枠を表示しています。

行選択は、データを一行ずつ処理する必要がある場合に特に便利です。例えば、分析のためにスプレッドシートデータをロードするときなどです:

using IronXL;
using System;

WorkBook workBook = WorkBook.Load("data.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Process each row
for (int i = 0; i < workSheet.RowCount; i++)
{
    var row = workSheet.GetRow(i);

    // Skip empty rows
    if (row.IsEmpty) continue;

    // Process row data
    foreach (var cell in row)
    {
        // Your processing logic here
        Console.Write($"{cell.Value}\t");
    }
    Console.WriteLine();
}
using IronXL;
using System;

WorkBook workBook = WorkBook.Load("data.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Process each row
for (int i = 0; i < workSheet.RowCount; i++)
{
    var row = workSheet.GetRow(i);

    // Skip empty rows
    if (row.IsEmpty) continue;

    // Process row data
    foreach (var cell in row)
    {
        // Your processing logic here
        Console.Write($"{cell.Value}\t");
    }
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

列全体を選択するにはどうすればよいですか?

C列を選択するには、GetColumn(2)メソッドを使用するか、workSheet["C:C"]として範囲アドレスを指定します。 GetRowメソッドと同様に、指定された列が埋まっているかどうかにかかわらず、関連するすべてのセルを含めます。

:path=/static-assets/excel/content-code-examples/how-to/select-range-column.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();

// Get column from worksheet
var column = workSheet.GetColumn(2);
$vbLabelText   $csharpLabel
範囲選択の例で列全体を選択する方法を示す、C# 列が赤くハイライトされたスプレッドシート.

ヒントすべての行と列のインデックス位置は、ゼロベースのインデックスに従います。

列の選択は、財務報告書やデータベースのエクスポートのような列データを扱う際に非常に有用です。 計算列のある新しいスプレッドシートを作成するときに使用するかもしれません:

using IronXL;
using System;

// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Data");

// Add header row
workSheet["A1"].Value = "Quantity";
workSheet["B1"].Value = "Price";
workSheet["C1"].Value = "Total";

// Add sample data
for (int i = 2; i <= 10; i++)
{
    workSheet[$"A{i}"].Value = i - 1;
    workSheet[$"B{i}"].Value = 10.5 * (i - 1);
}

// Select the Total column and apply formula
var totalColumn = workSheet.GetColumn(2); // Column C
for (int i = 2; i <= 10; i++)
{
    workSheet[$"C{i}"].Formula = $"=A{i}*B{i}";
}

workBook.SaveAs("calculations.xlsx");
using IronXL;
using System;

// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Data");

// Add header row
workSheet["A1"].Value = "Quantity";
workSheet["B1"].Value = "Price";
workSheet["C1"].Value = "Total";

// Add sample data
for (int i = 2; i <= 10; i++)
{
    workSheet[$"A{i}"].Value = i - 1;
    workSheet[$"B{i}"].Value = 10.5 * (i - 1);
}

// Select the Total column and apply formula
var totalColumn = workSheet.GetColumn(2); // Column C
for (int i = 2; i <= 10; i++)
{
    workSheet[$"C{i}"].Formula = $"=A{i}*B{i}";
}

workBook.SaveAs("calculations.xlsx");
$vbLabelText   $csharpLabel

複数の範囲を結合するにはどうすればよいですか?

IronXLは'+'オペレーターを使用して複数のIronXL.Ranges.Rangeオブジェクトを組み合わせる柔軟性を提供します。 演算子'+'を使用すると、簡単に範囲を連結またはマージして新しい範囲を作成することができます。 この機能は、連続しないセルに操作を適用する必要がある場合に特に便利です。 高度な結合テクニックについては、combining Excel ranges exampleを参照してください。

ご注意"+"演算子を使用して行と列を直接結合することはサポートされていません。

範囲を組み合わせると、元の範囲が変更されます。 以下のコード スニペットでは、結合された範囲を含むように変数rangeが変更されます。

:path=/static-assets/excel/content-code-examples/how-to/select-range-combine-range.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();

// Get range from worksheet
var range = workSheet["A2:B2"];

// Combine two ranges
var combinedRange = range + workSheet["A5:B5"];
$vbLabelText   $csharpLabel

高度な範囲選択テクニック

IronXLはExcelの機能を反映した高度な範囲選択シナリオをサポートしています:

using IronXL;
using System;
using System.Linq;

WorkBook workBook = WorkBook.Load("data.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Select multiple non-adjacent ranges
var headerRange = workSheet["A1:E1"];
var dataRange1 = workSheet["A5:E10"];
var dataRange2 = workSheet["A15:E20"];

// Combine ranges for batch operations
var combinedData = dataRange1 + dataRange2;

// Apply consistent formatting across combined ranges
combinedData.Style.BottomBorder.Type = IronXL.Styles.BorderType.Thin;
combinedData.Style.Font.Height = 11;

// Copy formatting from one range to another
var sourceFormat = headerRange.Style;
dataRange1.First().Style = sourceFormat;
using IronXL;
using System;
using System.Linq;

WorkBook workBook = WorkBook.Load("data.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Select multiple non-adjacent ranges
var headerRange = workSheet["A1:E1"];
var dataRange1 = workSheet["A5:E10"];
var dataRange2 = workSheet["A15:E20"];

// Combine ranges for batch operations
var combinedData = dataRange1 + dataRange2;

// Apply consistent formatting across combined ranges
combinedData.Style.BottomBorder.Type = IronXL.Styles.BorderType.Thin;
combinedData.Style.Font.Height = 11;

// Copy formatting from one range to another
var sourceFormat = headerRange.Style;
dataRange1.First().Style = sourceFormat;
$vbLabelText   $csharpLabel

数式を扱うとき、範囲選択はさらに強力になります:

// Select a range for formula application
var calculationRange = workSheet["D2:D20"];

// Apply formulas that reference other ranges
for (int i = 2; i <= 20; i++)
{
    workSheet[$"D{i}"].Formula = $"=SUM(A{i}:C{i})";
}

// Use range in aggregate functions
var sumRange = workSheet["B2:B20"];
decimal totalSum = sumRange.Sum();
decimal average = sumRange.Avg();
decimal max = sumRange.Max();
// Select a range for formula application
var calculationRange = workSheet["D2:D20"];

// Apply formulas that reference other ranges
for (int i = 2; i <= 20; i++)
{
    workSheet[$"D{i}"].Formula = $"=SUM(A{i}:C{i})";
}

// Use range in aggregate functions
var sumRange = workSheet["B2:B20"];
decimal totalSum = sumRange.Sum();
decimal average = sumRange.Avg();
decimal max = sumRange.Max();
$vbLabelText   $csharpLabel

レンジ選択のベストプラクティス

IronXLで範囲を扱う際には、パフォーマンスと信頼性のヒントを考慮してください:

1.必要なセルが正確に分かっている場合は、特定の範囲アドレスを使用してください。 これは、行や列全体を選択するよりも効率的です。

2.実行時エラーを避けるために、選択する前に範囲の境界を検証してください

// Check if range exists before selection
int lastRow = workSheet.RowCount;
int lastColumn = workSheet.ColumnCount;

if (lastRow >= 10 && lastColumn >= 3)
{
    var safeRange = workSheet["A1:C10"];
    // Process range
}
// Check if range exists before selection
int lastRow = workSheet.RowCount;
int lastColumn = workSheet.ColumnCount;

if (lastRow >= 10 && lastColumn >= 3)
{
    var safeRange = workSheet["A1:C10"];
    // Process range
}
$vbLabelText   $csharpLabel

3.範囲反復を活用して、効率的に処理してください:

var dataRange = workSheet["A1:E100"];

// Efficient: Process in batches
foreach (var cell in dataRange)
{
    if (cell.IsNumeric)
    {
        cell.Value = (decimal)cell.Value * 1.1; // 10% increase
    }
}
var dataRange = workSheet["A1:E100"];

// Efficient: Process in batches
foreach (var cell in dataRange)
{
    if (cell.IsNumeric)
    {
        cell.Value = (decimal)cell.Value * 1.1; // 10% increase
    }
}
$vbLabelText   $csharpLabel

セル範囲のコピーのような複雑なシナリオのために、IronXLは書式と数式を維持する特別なメソッドを提供します。

IronXLを使い始める

あなたのプロジェクトでIronXL.Excelのさまざまな選択機能を使い始めるには、包括的なスタートガイドから始めてください。 NuGetパッケージマネージャ経由でIronXLをインストールしてください:

Install-Package IronXL.Excel

または.NET CLIを使用して:

dotnet add package IronXL.Excel
dotnet add package IronXL.Excel
SHELL

範囲選択は、C#でのExcel操作の基礎を形成します。 IronXLの直感的なAPIを使えば、Office Interopのような複雑な操作なしに、Excelデータの選択、操作、変換を効率的に行うことができます。レポートの作成、データ分析、表計算作業の自動化など、範囲選択をマスターすることで生産性が大幅に向上します。

よくある質問

C# を使用して Excel でセル範囲を選択するにはどうすればよいですか?

IronXLでは、workSheet["A1:C3"]やworkSheet.GetRange("A1:C3")のような簡単な構文でセル範囲を選択することができます。これにより、Office Interopに依存することなく矩形の範囲を選択することができます。

プログラムで行や列全体を選択できますか?

はい、IronXLはExcelワークシートの行と列全体を選択するGetRow()メソッドとGetColumn()メソッドを提供します。これらのメソッドは、Excelをインストールすることなく、行や列の選択をプログラムで制御することができます。

C#で複数のセル範囲を結合するには?

IronXLでは'+'演算子を使って複数の範囲を結合することができます。この機能により、連続しないセル選択をプログラムで簡単に扱うことができます。

選択した範囲に対してどのような操作ができますか?

IronXLで範囲を選択すると、並べ替え、数学的計算、書式の適用、セルの反復処理、合計の計算などのデータ集計を含むさまざまな操作を実行できます。

選択した範囲に書式を適用する方法を教えてください。

IronXLで範囲を選択した後、Styleプロパティを使って書式を適用することができます。例えば、range.Style.BackgroundColorで背景色を設定し、range.Style.Font.Bold = trueでテキストを太字にすることができます。

選択した範囲のセルを繰り返し処理できますか?

はい、IronXLではforeachループを使って選択した範囲のセルを繰り返し処理することができます。各セルから値とアドレスにアクセスできるので、セルごとにデータを処理するのが簡単です。

カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 1,802,965 | バージョン: 2025.12 リリース