PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > セル > セルの結合 |
次の図に示すように、複数のセルを組み合わせて1つのセルを作成することができます。 結合セルを作成すると、複数のセルが結合して1つの大きなセルになります。 たとえばB2セルからD3セルまでのセルを結合すると、B2セルは、B2セルからD3セルまでの領域を占める1つのセルとして表示されます。
コントロールは、シートコーナー、列ヘッダ、行ヘッダ、およびデータ領域の4つの部分に分かれています。結合セルは、これらの各部分内に作成できますが、異なる部分間をまたぐ結合セルを作成することはできません。たとえば、データ領域内のセルを行ヘッダ内のセルと結合することはできません。同様に、列ヘッダ内のセルをシートコーナーのセルと結合することもできません。ここでは、データ領域でのセル結合について説明します。 ヘッダセルの結合の詳細については、「ヘッダセルの結合」を参照してください。
結合セルを作成すると、結合セル内の先頭セル(アンカーセルと呼びます)のデータが、結合セル内の全領域を占有します。結合セルでは、アンカーセル以外の各セルのデータもそのまま保持されますが、結合セル内には表示されません。各データは、セル結合によって非表示にされます。セル範囲の結合を解除すると、それまで非表示にされていた個々のセルの内容が再表示されます。 結合セルを作成するには、SheetViewクラスのAddSpanCellメソッドを呼び出します。 また、結合セル内の個々のセルのセル型も変更されません。結合セルには、アンカーセルのセル型が適用されます。
結合を解除するには、SheetViewクラスのRemoveSpanCellメソッドを呼び出します。このメソッドを呼び出し、アンカーセルを指定することで、セル範囲の結合を解除できます。セル結合を解除すると、結合されていた個々のセルの元のデータが再表示されます。各データはセル結合によって削除されるのではなく、非表示にされているだけです。
並べ替えの行われたシートに結合セルを追加しても、この結合セルは表示されません。セル範囲に結合セルが含まれる場合、SheetViewクラスのSortRangeメソッドで並べ替えることはできません。また、SortRangeメソッド以外のどのメソッドを使用してシート、またはその一部でも並べ替えた場合、結合は表示されません。 |
アンカーセルに設定したプロパティはすべて、結合セルに適用されます。これにはセルノートの設定も含まれます。結合セル内のアンカーセル以外のセルにセルノートを設定すると、このセルノートは表示されません。
セルが結合セルに含まれるかどうかを確認するには、SheetViewクラスのGetSpanCellメソッドを呼び出します。このセルが結合セルに含まれていた場合は、CellRangeオブジェクトを取得できます。このオブジェクトは、アンカーセルの列インデックスと行インデックス、結合セル内の行数と列数を保持しています。
マージされた列が結合セル上に重なると、結合セルはマージ列に置き換えられます。 結合セルに含まれるセルに対して、マージを設定することは推奨されません。 同じ内容を持つセルの自動マージの詳細については、「セルの自動マージ」を参照してください。
結合セルの基本モデルについては、「Span モデル」を参照してください。
シートのスクロールにより、結合セルの一部が画面上に表示されなくなったときにも、データの表示位置を維持するように設定できます。「データの配置」を参照してください。
セルを結合(または結合解除)するには、以下のメソッドを使用します。
次のサンプル コードは、セルにデータを設定し、隣接する6つのセルを結合します。
C# |
コードのコピー
|
---|---|
// 2つのセルのデータを作成します。 fpSpread1.ActiveSheet.Cells[1,1].Text = "These six cells are spanned."; fpSpread1.ActiveSheet.Cells[2,2].Text = "This is text in 2,2."; // 上記の各データを設定した2つのセルも含め、6つのセルを結合します。 fpSpread1.ActiveSheet.AddSpanCell(1, 1, 2, 3); |
Visual Basic |
コードのコピー
|
---|---|
' 2つのセルのデータを作成します。 fpSpread1.ActiveSheet.Cells(1,1).Text = "These six cells are spanned." fpSpread1.ActiveSheet.Cells(2,2).Text = "This is text in 2,2." ' 上記の各データを設定した2つのセルも含め、6つのセルを結合します。 fpSpread1.ActiveSheet.AddSpanCell(1, 1, 2, 3) |