2011年9月17日土曜日

VB6 と FlexGridでセルを結合する方法(マージ)

ヘルプより

機  能 内容の同じセル間のグリッド線を削除し、複数のセルを1つのセルにまとめます(マージします)。

書  式 [form.]FlexGrid.MergeCells[= Style%]

0 flexMergeNever        マージしない(デフォルト)
1 flexMergeFree         セル単位
2 flexMergeRestrictRows    行方向
3 flexMergeRestrictColumns  列方向
4 flexMergeRestrictAll      行と列
5 flexMergeFixedOnly      固定セルのみ
6 flexMergeSpill      隣へはみだす


MergeCellsプロパティを使って内容の同じセルを1つにまとめると、表が非常に見やすくなります。
セルをまとめる機能(マージ機能)を有効にするには、以下の設定が必要です。

1,MergeCellsプロパティを0以外の値に設定する。
2,マージしたい行や列のMergeRowプロパティやMergeColプロパティをTrueに設定する。
 (「6-隣へはみだす」を使用しているときには、最後の操作は必要ありません)

これで操作は完了です。指定した行や列のセルの内容が同じであれば、それらのセルは1つにまとめられ、セルの中身が変更された場合には、新しい内容に従ってセルが新たにまとめられます。

「0-マージしない」以外の値に設定すると、コントロール上の選択範囲はHighLightプロパティの設定値に関係なく常に非表示となります。これはマージしたセルの一部が選択範囲内に、残りは選択範囲外に分断されてしまう可能性があるためです。

設定値「Free(1)」と「Restricted(2、3、4のいずれか)」は、同一内容を持つセルをすべてマージするか(Free)、隣接するセルのみをマージするか(Restricted)という点で異なります。

「5-固定セルのみ」は、列(行)のタイトルだけをマージし、その列(行)のデータはマージしたくないときに便利です。

「6-隣へはみだす」は他の設定と少し異なっています。というのは、この設定だけはMergeColプロパティとMergeRowプロパティの設定を必要とせず、他と同じやり方ではセルをマージできないからです。その代わり、隣のセルが空である限り、長いエントリも隣のセルにはみ出して表示できます。この機能は、アウトラインを作成するときに非常に有効です。まず、グループのタイトルを表示できるだけの狭い列を作成しておき、必要に応じて右側のセルにはみ出して表示するように設定できるからです。

------------------------------------------------------
VB6 FlexGrid

0 件のコメント:

コメントを投稿