範囲
範囲は二つ以上のセルで構成されます。
範囲ポジション
範囲ポジションは範囲の位置を表す構造体で、ワークシートにある実際の範囲と直接関係しません。範囲ポジションは RangePosition
構造体により実装され、文字列のアドレスまたはセルの行列ポジションと行列数によって作成できます。
文字列のアドレスから範囲ポジションを作成
RangePosition
を作成する際に文字列のアドレスをそのまま渡します。
var range = new RangePosition("C5:H14");
セルの行列ポジションと行列数から作成
四つのパラメータ、行、列、行数、列数から作成できます。
// 行:4 列:2 行数: 9 列数:5
var range = new RangePosition(4, 2, 9, 5);
行数と列数は必ず 1 以上が必要です。0 以下の数値(-1を除く)を渡すと例外が発生します。
場合によってワークシートは -1 を全ての行数または列数として認識します。この挙動は RangePosition
をワークシートの関数の呼び出し時のパラメータとして渡す場合のみ有効です。
二つのセルポジションから作成
範囲ポジションは二つのセルポジションから作成できます。
var range = new RangePosition(new CellPosition("B2"), new CellPosition("E4"));
また、二つのセルポジションの並びが逆でも範囲の作成ができます。ReoGrid は二つのセルポジションから自動的に最も左上と右下のポジションを検出して範囲定義を作成します。
文字列アドレスの有効性をチェック
RangePosition
構造体の静的なメソッド IsValidAddress
を利用して指定した文字列が有効なアドレスであるかをチェックすることができます。
var valid = RangePosition.IsValidAddress("B3C4"); // 戻り値: false
var valid = RangePosition.IsValidAddress("B3:C4"); // 戻り値: true
指定したポジションが範囲ポジションにあるかをチェック
範囲ポジションのメソッド Contains
を利用するとセルポジションか範囲ポジションがその中にあるかをチェックできます。
range.Contains(new CellPosition("B3")); // 戻り値: true
range.Contains(new CellPosition("B2")); // 戻り値: false
range.Contains(new RangePosition("B3:B4")); // 戻り値: true
range.Contains(new RangePosition("B2:B4")); // 戻り値: false
指定した範囲でセルの結合と結合したセルの解除
指定した範囲からセルを結合、または結合したセルを解除するには、「セルの結合と結合したセルの解除」をご覧ください。
命名範囲
範囲を名前を付けてワークブックに定義できます。定義した命名範囲の名前は参照として数式計算で利用できます。詳しくは、「命名範囲」をご覧ください。