IronXLでC#に名前付き範囲を追加する方法
名付けられた範囲は、一意の名前で識別される特定のセル範囲です。 範囲をセルアドレス(例:A1:B10)で参照する代わりに、範囲に名前を割り当てることで、数式や関数での参照が簡単になります。 例えば、範囲に"SalesData"という名前を付けた場合、セル範囲を直接指定する代わりに SUM(SalesData) のように式で参照できます。
C#でExcelの数式を使用する場合、コードの可読性と保守性が高まるため、名前付き範囲は特に便利です。 IronXLの強力な範囲選択機能と組み合わせると、名前付き範囲は効率的なスプレッドシート管理に欠かせないツールとなります。
クイックスタート:IronXLでワンライナーで名付けられた範囲を追加IronXLを使用して、単一のメソッド呼び出しで名前付き範囲を定義します。 範囲を選択してSaveAsNamedRangeメソッドを適用してください。
-
1Install IronXL with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
new IronXL.WorkBook() .DefaultWorkSheet["A1:B2"].SaveAsNamedRange("MyRange", true);C# -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronXL を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- 名前付き範囲を追加するには、C# ライブラリをダウンロードしてください。
- workSheet["A1:A5"]で対象範囲を選択する
- 名前付き範囲を追加するには、
AddNamedRangeメソッドを使用します。 - さまざまな方法で名前付き範囲を取得する
RemoveNamedRangeメソッドを使用して、名前付き範囲を簡単に削除します。
ワークシートに名前付き範囲を追加するには?
名前付き範囲を追加するには、名前付き範囲の名前をテキストとして渡し、範囲オブジェクトを使用してAddNamedRangeメソッドを使用します。 このメソッドは、IronXL.Excelの包括的なワークシート管理機能の一部です。
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")名前付き範囲を作成する際は、Excelの命名規則に従う必要があります:
- 名前はアルファベットまたはアンダースコアで始まる必要があります。
- 名前にスペースを含めることはできません(代わりにアンダースコアを使用してください)。
- セル参照("A1 "や "R1C1 "など)と名前が競合しないこと。
- 名前の大文字と小文字は区別しませんが、大文字と小文字を統一することで読みやすさが向上します。

名前付き範囲は、連続しない選択や行/列全体のために作成することもできます。 より複雑な範囲操作については、複数のExcel範囲を結合するガイドをご覧ください。
ワークブックから名前付き範囲を取得するにはどうすればよいですか?
すべての名前付き範囲を一度に取得するメソッドは何ですか
GetNamedRangesメソッドは、ワークシート内のすべての名前付き範囲を文字列のリストとして返します。 これは、既存のスプレッドシートをロードしてその構造を分析するのと同じように、ワークブック内のすべての名前付き範囲を監査または文書化する必要がある場合に特に役立ちます。
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()特定の名前の範囲を名前で検索するにはどうすればよいですか?
名前付き範囲の絶対参照を取得するには、FindNamedRangeメソッドを使用し、例えば Sheet1!$A$1:$A$5 を使用します。 アドレス式は、名付けられた範囲を参照するため、または名付けられた範囲に対応する範囲を選択するために使用できます。 範囲を選択するときは、ワークシート名に注意を払う必要があります。
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}")複数のワークシートにわたる名前付き範囲の操作
指定範囲は、ワークブックレベルまたはワークシートレベルです。 ワークブックレベルの名前は、どのワークシートからもアクセスできますが、ワークシートレベルの名前は、特定のワークシート内でのみアクセスできます。 この区別は、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 rangeImports System
' Example: Accessing named ranges from different worksheets
Dim workBook As WorkBook = WorkBook.Load("multisheet.xlsx")
Dim sheet1 As WorkSheet = workBook.GetWorkSheet("Sheet1")
Dim sheet2 As WorkSheet = workBook.GetWorkSheet("Sheet2")
' Both can access a workbook-level named range
Dim range1 = sheet1("GlobalData")
Dim range2 = sheet2("GlobalData") ' Same named rangeワークシートから名前付き範囲を削除するには?
名前付き範囲を削除するには、名前付き範囲の名前をテキストとして渡してRemoveNamedRangeメソッドを使用します。 これは、きれいに整理されたワークブックを維持し、スプレッドシート構造を更新する際の名前の衝突を防ぐために不可欠です。
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")高度な名前付き範囲のシナリオ
数式で名前付き範囲を使用する
名前付き範囲は、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
workBook.EvaluateAll();
動的に名称付けされた範囲
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}"]);Imports IronXL
' Update named range based on data size
Dim workBook As WorkBook = WorkBook.Load("dynamicData.xlsx")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
' Find last row with data
Dim lastRow As Integer = 1
While Not workSheet($"A{lastRow}").IsEmpty
lastRow += 1
End While
lastRow -= 1 ' Adjust to actual last row
' Remove old range and add new one
workSheet.RemoveNamedRange("DataRange")
workSheet.AddNamedRange("DataRange", workSheet($"A1:A{lastRow}"))データ検証のための名前付き範囲
名前付き範囲は、データ検証リストや制約の作成に最適です。 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"ベストプラクティスとパフォーマンスのヒント
- 命名規則: データの目的を示す説明的で一貫性のある名前を使用します(例:"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メソッドを提供し、ワークシートから名前付き範囲を簡単に削除することができます。これはライブラリの完全な名前付き範囲管理機能の一部であり、プログラムによって名前付き範囲を追加、取得、削除することができます。
Can dynamic named ranges be created with IronXL?
While IronXL doesn't support Excel's dynamic named ranges directly, you can update named ranges programmatically based on data changes to achieve similar functionality.
How are named ranges used for data validation?
Named ranges are perfect for data validation lists and constraints. When combined with Excel's data validation features, they ensure accurate and consistent data entry across your spreadsheet.
What are some best practices for using named ranges?
For effective use of named ranges, adhere to naming conventions, manage scope thoughtfully, document their purposes, and ensure updates reflect structural changes to maintain workbook accuracy.

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