C#でExcel名前付き範囲を管理する方法

IronXLでC#に名前付き範囲を追加する方法

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

名付けられた範囲は、一意の名前で識別される特定のセル範囲です。 範囲をセルアドレス(例:A1:B10)で参照する代わりに、範囲に名前を割り当てることで、数式や関数での参照が簡単になります。 例えば、範囲に"SalesData"という名前を付けた場合、セル範囲を直接指定する代わりに、SUM(SalesData) のように数式で参照できます。

C#でExcelの数式を使用する場合、コードの可読性と保守性が高まるため、名前付き範囲は特に便利です。 IronXLの強力な範囲選択機能と組み合わせることで、名前付き範囲は効率的なスプレッドシート管理に不可欠なツールとなります。

クイックスタート:IronXL を使用して1行で名付けられた範囲を追加

IronXLを使用して、単一のメソッド呼び出しで名前付き範囲を定義します。 範囲を選択し、SaveAsNamedRangeメソッドを適用します。

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

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

    PM > Install-Package IronXL.Excel

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

    new IronXL.WorkBook()
        .DefaultWorkSheet["A1:B2"].SaveAsNamedRange("MyRange", true);
  3. 実際の環境でテストするためにデプロイする

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


ワークシートに名前付き範囲を追加するには?

名付けられた範囲を追加するには、名付けられた範囲の名前をテキストとして渡し、範囲オブジェクトを使用してAddNamedRangeメソッドを使用します。 この方法はIronXLの包括的なワークシート管理機能の一部です。

:path=/static-assets/excel/content-code-examples/how-to/named-range-add-named-range.cs
using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Select range
var selectedRange = workSheet["A1:A5"];

// Add named range
workSheet.AddNamedRange("range1", selectedRange);

workBook.SaveAs("addNamedRange.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Create()
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Select range
Private selectedRange = workSheet("A1:A5")

' Add named range
workSheet.AddNamedRange("range1", selectedRange)

workBook.SaveAs("addNamedRange.xlsx")
$vbLabelText   $csharpLabel

名前付き範囲を作成する際は、Excelの命名規則に従う必要があります:

  • 名前はアルファベットまたはアンダースコアで始まる必要があります。
  • 名前にスペースを含めることはできません(代わりにアンダースコアを使用してください)。
  • セル参照("A1 "や "R1C1 "など)と名前が競合しないこと。
  • 名前の大文字と小文字は区別しませんが、大文字と小文字を統一することで読みやすさが向上します。
Excel の名前ボックスで、セル A1:A5 が選択され強調表示された.

名前付き範囲は、連続しない選択や行/列全体のために作成することもできます。 より複雑な範囲操作については、複数のExcel範囲を結合するガイドをご覧ください。


ワークブックから名前付き範囲を取得するにはどうすればよいですか?

すべての名前付き範囲を一度に取得するメソッドは何ですか

GetNamedRangesメソッドは、ワークシート内のすべての名前付き範囲を文字列のリストとして返します。 これは、既存のスプレッドシートをロードしてその構造を分析するのと同じように、ワークブック内のすべての名前付き範囲を監査または文書化する必要がある場合に特に役立ちます。

:path=/static-assets/excel/content-code-examples/how-to/named-range-retrieve-all-named-range.cs
using IronXL;

WorkBook workBook = WorkBook.Load("addNamedRange.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Get all named range
var namedRangeList = workSheet.GetNamedRanges();
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("addNamedRange.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Get all named range
Private namedRangeList = workSheet.GetNamedRanges()
$vbLabelText   $csharpLabel

特定の名前の範囲を名前で検索するにはどうすればよいですか?

FindNamedRangeメソッドを使用して、名付けられた範囲の絶対参照(例:Sheet1!$A$1:$A$5)を取得します。 アドレス式は、名付けられた範囲を参照するため、または名付けられた範囲に対応する範囲を選択するために使用できます。 範囲を選択するときは、ワークシート名に注意を払う必要があります。

:path=/static-assets/excel/content-code-examples/how-to/named-range-retrieve-specific-named-range.cs
using IronXL;

WorkBook workBook = WorkBook.Load("addNamedRange.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Get named range address
string namedRangeAddress = workSheet.FindNamedRange("range1");

// Select range
var range = workSheet[$"{namedRangeAddress}"];
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("addNamedRange.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Get named range address
Private namedRangeAddress As String = workSheet.FindNamedRange("range1")

' Select range
Private range = workSheet($"{namedRangeAddress}")
$vbLabelText   $csharpLabel

複数のワークシートにわたる名前付き範囲の操作

指定範囲は、ワークブックレベルまたはワークシートレベルです。 ワークブックレベルの名前は、どのワークシートからもアクセスできますが、ワークシートレベルの名前は、特定のワークシート内でのみアクセスできます。 この区別は、Excelファイルで複数のワークシートを管理する場合に重要です。

// Example: Accessing named ranges from different worksheets
WorkBook workBook = WorkBook.Load("multisheet.xlsx");
WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1");
WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2");

// Both can access a workbook-level named range
var range1 = sheet1["GlobalData"];
var range2 = sheet2["GlobalData"];  // Same named range
// Example: Accessing named ranges from different worksheets
WorkBook workBook = WorkBook.Load("multisheet.xlsx");
WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1");
WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2");

// Both can access a workbook-level named range
var range1 = sheet1["GlobalData"];
var range2 = sheet2["GlobalData"];  // Same named range
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ワークシートから名前付き範囲を削除するには?

名付けられた範囲を削除するには、名付けられた範囲の名前をテキストとして渡してRemoveNamedRangeメソッドを使用します。 これは、きれいに整理されたワークブックを維持し、スプレッドシート構造を更新する際の名前の衝突を防ぐために不可欠です。

:path=/static-assets/excel/content-code-examples/how-to/named-range-remove-named-range.cs
using IronXL;

WorkBook workBook = WorkBook.Load("addNamedRange.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Remove named range
workSheet.RemoveNamedRange("range1");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("addNamedRange.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Remove named range
workSheet.RemoveNamedRange("range1")
$vbLabelText   $csharpLabel

高度な名前付き範囲のシナリオ

数式で名前付き範囲を使用する

名前付き範囲は、Excelの数式で使用すると真価を発揮します。 これらのツールは、数式をより読みやすくし、保守を容易にします。 包括的な数式管理については、Excel 数式 in C# のガイドを参照してください。

// Create named ranges for formula use
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Create sample data
workSheet["A1:A5"].Value = new int[] { 10, 20, 30, 40, 50 };
workSheet["B1:B5"].Value = new int[] { 5, 10, 15, 20, 25 };

// Add named ranges
workSheet.AddNamedRange("FirstColumn", workSheet["A1:A5"]);
workSheet.AddNamedRange("SecondColumn", workSheet["B1:B5"]);

// Use named ranges in formulas
workSheet["D1"].Formula = "=SUM(FirstColumn)";
workSheet["D2"].Formula = "=AVERAGE(SecondColumn)";
workSheet["D3"].Formula = "=SUM(FirstColumn) + SUM(SecondColumn)";

// Evaluate formulas
workSheet.EvaluateAll();
// Create named ranges for formula use
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Create sample data
workSheet["A1:A5"].Value = new int[] { 10, 20, 30, 40, 50 };
workSheet["B1:B5"].Value = new int[] { 5, 10, 15, 20, 25 };

// Add named ranges
workSheet.AddNamedRange("FirstColumn", workSheet["A1:A5"]);
workSheet.AddNamedRange("SecondColumn", workSheet["B1:B5"]);

// Use named ranges in formulas
workSheet["D1"].Formula = "=SUM(FirstColumn)";
workSheet["D2"].Formula = "=AVERAGE(SecondColumn)";
workSheet["D3"].Formula = "=SUM(FirstColumn) + SUM(SecondColumn)";

// Evaluate formulas
workSheet.EvaluateAll();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronXLはエクセルのダイナミックな名前付き範囲(OFFSETやINDEX関数を使用)を直接サポートしていませんが、データの変更に基づいて名前付き範囲をプログラムで更新することができます:

// Update named range based on data size
WorkBook workBook = WorkBook.Load("dynamicData.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Find last row with data
int lastRow = 1;
while (!workSheet[$"A{lastRow}"].IsEmpty)
{
    lastRow++;
}
lastRow--; // Adjust to actual last row

// Remove old range and add new one
workSheet.RemoveNamedRange("DataRange");
workSheet.AddNamedRange("DataRange", workSheet[$"A1:A{lastRow}"]);
// Update named range based on data size
WorkBook workBook = WorkBook.Load("dynamicData.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Find last row with data
int lastRow = 1;
while (!workSheet[$"A{lastRow}"].IsEmpty)
{
    lastRow++;
}
lastRow--; // Adjust to actual last row

// Remove old range and add new one
workSheet.RemoveNamedRange("DataRange");
workSheet.AddNamedRange("DataRange", workSheet[$"A1:A{lastRow}"]);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

データ検証のための名前付き範囲

名前付き範囲は、データ検証リストや制約の作成に最適です。 Excelのデータ検証機能と組み合わせることで、データの整合性を確保する強力な方法を提供します:

// Create a named range for validation list
workSheet["F1:F5"].Value = new string[] { "Option1", "Option2", "Option3", "Option4", "Option5" };
workSheet.AddNamedRange("ValidationList", workSheet["F1:F5"]);

// Apply to data validation (conceptual example)
// The actual validation would reference "ValidationList"
// Create a named range for validation list
workSheet["F1:F5"].Value = new string[] { "Option1", "Option2", "Option3", "Option4", "Option5" };
workSheet.AddNamedRange("ValidationList", workSheet["F1:F5"]);

// Apply to data validation (conceptual example)
// The actual validation would reference "ValidationList"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ベストプラクティスとパフォーマンスのヒント

1.命名規則:データの目的を示す、説明的で一貫性のある名前を使用してください (例: "Data1" ではなく Sales_Q1_2024) 2.スコープ管理: 衝突を避けるために、ワークブックとワークシートのスコープを意図的に使い分ける。 3.ドキュメント:特に複雑なワークブックにおいて、名前付き範囲のリストとその目的を維持する。 4.パフォーマンス:名前付き範囲はパフォーマンスへの影響は最小限ですが、何千もの小さな名前付き範囲を作成することは避けてください。 5.更新:データ構造が変更された場合、正確さを維持するために、対応する名前の範囲を更新または削除します。

より高度なExcel操作やパフォーマンスの最適化については、IronXLの完全なドキュメントをご覧になるか、Excel範囲のソートExcelテーブルの操作のような特定の機能をチェックしてください。

よくある質問

C#を使用してExcelで名前付き範囲を作成するにはどうすればよいですか?

IronXLを使用してC#でExcelに名前付き範囲を作成するには、ワークシート・インデクサー(workSheet["A1:B2"]など)を使用して目的の範囲を選択し、SaveAsNamedRangeメソッドに希望の名前を付けて呼び出します。AddNamedRange メソッドを使用して、名前をテキストと範囲オブジェクトとして渡すこともできます。

Excelの名前付き範囲の命名規則は何ですか?

IronXLを使用して名前付き範囲を作成する場合は、Excelの命名規則に従ってください:名前はアルファベットかアンダースコアで始まり、スペースを含むことはできず(代わりにアンダースコアを使用する)、'A1'のようなセル参照と衝突することはできず、大文字と小文字は区別されません。IronXLは名前付き範囲を作成する際にこれらの規則を自動的に適用します。

Excelワークブックからプログラムによってすべての名前付き範囲を取得できますか?

はい、IronXLはワークシート内のすべての名前付き範囲を文字列のリストとして返すGetNamedRangesメソッドを提供しています。この機能は、IronXLで読み込んだ既存のワークブックの名前付き範囲を監査したり文書化したりする場合に特に便利です。

名前付き範囲は、C#でExcelの数式をどのように改善できますか?

名前付き範囲は、IronXL.Excelで作業する際に、Excelの数式をより読みやすく、メンテナンスしやすくします。A1:B10'のようなセル参照を使用する代わりに、'SalesData'のような説明的な名前を数式に使用できます。

連続しないセルに名前付き範囲を作成できますか?

はい、IronXLは連続しない選択範囲や行や列全体の名前付き範囲の作成をサポートしています。このライブラリの包括的なワークシート管理機能により、単純な矩形選択を超えた複雑な名前付き範囲を定義することができます。

1行のコードで名前付き範囲を追加する最も簡単な方法は何ですか?

IronXLを使用すると、次のように1行で名前付き範囲を作成できます: new IronXL.WorkBook().DefaultWorkSheet["A1:B2"].SaveAsNamedRange("MyRange", true)。これはIronXL.Excel操作のための合理化されたAPIを示しています。

Excelワークシートから名前付き範囲を削除する方法を教えてください。

IronXLはRemoveNamedRangeメソッドを提供し、ワークシートから名前付き範囲を簡単に削除することができます。これはライブラリの完全な名前付き範囲管理機能の一部であり、プログラムによって名前付き範囲を追加、取得、削除することができます。

Chaknith Bin
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。
準備はできましたか?
Nuget ダウンロード 1,765,830 | バージョン: 2025.12 リリース