命名範囲

ReoGrid では範囲を名前付けで定義することができます。定義した範囲の参照可能な範囲はワークブックとワークシートの二つがあります。ワークブック範囲として定義した場合すべてのワークシートからの参照が可能になります。

命名範囲を定義

ワークシートのメソッド DefineNamedRange を利用すると命名範囲を定義できます。

var sheet = grid.CurrentWorksheet;

// 範囲 C3:F3 を名前 header として定義
sheet.DefineNamedRange("header", new RangePosition("C3:F3"));

定義した命名範囲 header にデータを設定します。

sheet["header"] = new object[] { "Name", "Age", "Birthday", "Email" };

Named Range

命名範囲インスタンスの Data プロパティを利用してデータの設定も可能です。

// 命名範囲を定義
NamedRange namedRange = sheet.DefineNamedRange("items", "B2:E2"); 

// データを設定
namedRange.Data = new object[] { 1, 3, 5, 7 };

参照可能な範囲を設定

DefineNamedRange を利用して命名範囲を定義する際に、デフォルトでは参照可能な範囲がワークブック全体に設定されています。命名範囲の参照可能な範囲をワークシートに変更したい場合、以下のように定義します。

var range = sheet.DefineNamedRange("myRange", "B2:C3", NamedRangeScope.Worksheet);

または、既に定義済みの命名範囲の Scope プロパティを設定してワークブックやワークシートに変更することもできます。

range.Scope = NamedRangeScope.Worksheet;

命名範囲を数式計算で利用

Excel と同じように直接計算式で命名範囲の名前を参照として利用します。

// 命名範囲を定義
var range = sheet.DefineNamedRange("range1", "A1:C2");

// データを設定
range.Data = new object[,] { {1, 2, 3}, {4, 5, 6} };

// 計算式を設定、range1を参照
sheet["E2"] = "=SUM(r1)";

139

数式計算について詳しくは、「数式計算」をご覧ください。

定義した命名範囲を削除

定義した命名範囲を削除するため、命名範囲が存在するワークシートの UndefineNamedRange を呼び出します。

sheet.UndefineNamedRange("myName");

数式計算で命名範囲を参照

数式計算の中で命名範囲の名前を利用すると命名範囲へ参照できます。

sheet["E1"] = "=SUM(myName)";

数式計算用カスタマイズした命名解析プロバイダ

計算式で命名範囲を参照する際に、定義されていない名前でもカスタマイズした命名解析プロバイダで解析できます。

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

myName1myName2 命名範囲は定義されていない命名範囲です。このような命名範囲への参照は、カスタマイズした命名解析プロバイダを利用すると参照内容を提供できます。カスタマイズした命名解析プロバイダについて詳しくは、「数式計算用のカスタマイズした関数」をご覧ください。

命名範囲の自動更新

ワークシートにある行列数が変更された場合、命名範囲のポジションも更新されます。

  • 命名範囲の上または左側に新しい行列が挿入された場合、命名範囲は後ろにずれます。
  • 命名範囲の中に新しい行列が挿入された場合、命名範囲はその数の行列数が増えます。
  • 行列が削除された場合、行列の挿入と同じように命名範囲が更新されます。
  • 命名範囲の下または右側に新しい行列が挿入または削除された場合、命名範囲は更新されません。

命名範囲の自動更新はデフォルトで実行され、現時点では禁止できません。

関連イベント

ワークシートにある範囲が新たに定義された場合、ワークシートのイベント NamedRangeDefined が発生します。命名範囲の定義が削除された場合、ワークシートのイベント NamedRangeUndefined が発生します。

全てのイベントの一覧は、「イベント」をご覧ください。

ReoGridエディタで命名範囲を定義

エディタで命名範囲を定義するには、ワークシートで該当範囲を選択し、メニューから「数式(F)」→「名前を定義(N)...」を選びます。 ja91

選択された範囲は自動的に入力されます。名前とコメント(オプション)を入力し、「OK」ボタンをクリックすると、命名範囲が定義されます。

エディタで定義された命名範囲を選ぶ

いつでもエディタの左上にあるアドレスバーのドロップダウンボタンをクリックすると、定義されている命名の一覧が表示されます。命名を選ぶとその範囲が選択されます。 180

「header」を選ぶ場合、headerに定義される範囲が選択されます。 93


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