名前付き範囲

プログラムによる名前付き範囲の定義

名前付き範囲を定義するには、DefineNamedRange メソッドを使用します:

var sheet = grid.CurrentWorksheet;

// define named range starting at C3, ending at F3, containing 4 columns
sheet.DefineNamedRange("header", new RangePosition("C3:F3"));

名前を指定してワークシートにデータを設定します:

// set header text inside the range named 'header'
sheet["header"] = new object[] { "Name", "Age", "Birthday", "Email" };

テキストは以下のように4列にわたって表示されます:

Named Range

名前付き範囲のインスタンスを使用してデータを設定することもできます。

// define a named range
NamedRange namedRange = sheet.DefineNamedRange("items", "B2:E2");

// set values into named range
namedRange.Data = new object[] { 1, 3, 5, 7 };

数式で名前を使用する

数式で範囲を名前で参照するには、名前を直接使用します:

var range = sheet.DefineNamedRange("r1", "A1:C2");

range.Data = new object[,] {
  {1, 2, 3},
  {4, 5, 6}
};

sheet["E2"] = "=SUM(r1)";

139

数式の詳細については数式を参照してください。

名前付き範囲の定義を削除

スプレッドシートから名前付き範囲の定義を削除するには、UndefineNamedRange メソッドを使用します。

sheet.UndefineNamedRange("myname");

名前解析プロバイダーのカスタマイズ

スプレッドシートに定義されていないカスタム名を数式で使用することも可能です:

sheet["F1"] = "=myName1 + myName2";

myName1myName2 は名前付き範囲として定義されていないため、カスタム名前解析プロバイダーを使用してプログラムで値を提供できます。カスタム関数を参照してください。

行/列の挿入・削除後の範囲の変化

行や列の挿入・削除は、名前付き範囲に以下のように影響します:

  • 名前付き範囲の前に行や列が挿入された場合、名前付き範囲は自動的に移動します。
  • 名前付き範囲の内部に行や列が挿入された場合、名前付き範囲はそれらを含むように自動的に拡張されます。
  • 名前付き範囲内の行や列が削除された場合、名前付き範囲はそれに応じて縮小します。名前付き範囲内のすべての行や列が削除された場合、名前付き範囲も自動的に削除されます。

これらの動作は現在変更できません。

イベント

名前付き範囲が定義された時にイベントを受け取るには、NamedRangeDefined イベントを使用します。名前付き範囲の定義が削除された時にイベントを受け取るには、NamedRangeUndefined イベントを使用します。

ReoGridEditorでの名前付き範囲の定義

ReoGridEditorで名前付き範囲を定義するには、対象の範囲を選択してから、メニュー Formula > Define Named Range を選択します。

179

OK を押すと、アドレスバーのドロップダウンに名前が表示されます:

180

名前 'header' を選択すると、範囲が選択されます。

93


ページの内容は役に立ちましたか?