SPREADシート(SheetView オブジェクト)は、セル、列、行などの各オブジェクトで構成されますが、このオブジェクトの基となるのが「モデル」です。つまり、シートのすべてのオブジェクトおよび設定に対して、その基の要素となる一式のシートモデルが存在し、すべてのシートは、それぞれ固有のモデルセットを保持します。複数のシートから成る SPREADコントロールの場合は、コントロール内の各シートがそれぞれのモデルセットを保持します。
シートのCells、Columns、Rows プロパティなどのショートカットオブジェクトを介して、セル、列、行などのオブジェクトを設定すると、設定された内容はモデルに格納されます。また、通常はモデルを使用すると、プロパティを介して各オブジェクトを設定するより処理が高速になります。
たとえば、次のようにCellsプロパティを使用してCells クラスを参照し値を設定する場合を考えます。
これを、データモデルのメソッドを使用すると、次のようになります。
この場合の実行結果は同じものですが、内部での処理はモデル使用時の方が高速になるため、多くのデータを扱う場合はアプリケーション全体の処理が向上することもあります。また、モデルを使用しないと実現できない処理もあります。
なお、多くの処理は、モデルを使用しなくても実行でき、シート内のすべての要素がモデル内に存在するわけではありません。たとえば、シートタブ、シートの背景色、グリッド線などのコントロール全体に関する属性には、モデルには含まれないものもあります。しかし、特定のセルについての情報、たとえばセル内のデータおよびセルの外観についての情報は、モデルに含まれます。
シートのデータ領域は、固有のモデルセットを持つ1つのシートと考えられます。また、行ヘッダも固有のモデルが割り当てられた1つのシートに相当するグループと考えられます。列ヘッダも同様です。