MSHFlexGridのマージについて


VB発展途上の初心者とも  2005-11-18 07:58:47  No: 127900

MSHFlexGridのマージに関する質問です。
AccessとVB6.0を使用しています。

MSHFlexGridに表示した下記のセル
-----------------
| A | B | C | D |
-----------------
| A | B | C | D |
-----------------
| A | B | C | D |
-----------------
| E | F | C | G |
-----------------
| E | F | C | G |
-----------------
| E | F | C | G |
-----------------
をマージさせると

-----------------
|   |   |   |   |
| A | B |   | D |
|   |   |   |   |
--------- C -----
|   |   |   |   |
| E | F |   | G |
|   |   |   |   |
-----------------
となってしまいます。

目的の形は
-----------------
|   |   |   |   |
| A | B | C | D |
|   |   |   |   |
-----------------
|   |   |   |   |
| E | F | C | G |
|   |   |   |   |
-----------------
と、したいのです。

そこで
i = 1
j = 4
k = 1
l = 1
m = rs12.RecordCount
For n = 1 To m        
If FGsyousaidata.TextMatrix(i, 3) = FGsyousaidata.TextMatrix(j, 3) Then
  Select Case k
    Case 1 To 2
      FGsyousaidata.TextMatrix(j, 3) = l
      j = j + 1
      k = k + 1
    Case 3
      FGsyousaidata.TextMatrix(j, 3) = l
      j = j + 1
      i = i + 3
      k = 1
      l = l + 1
    End Select
  Else
    i = i + 3
    j = j + 3
    k = 1
  End If
  n = j
Next

として、1行目と4行目、1行目と5行目、1行目と6行目を比較して
同じならFGsyousaidata.TextMatrix(j, 3)に1を代入することで
一時的に変更したのち、マージをすると

FGsyousaidata.MergeCells = flexMergeRestrictColumns
FGsyousaidata.MergeCol(1) = True
FGsyousaidata.MergeCol(2) = True
FGsyousaidata.MergeCol(3) = True
FGsyousaidata.MergeCol(4) = True

-----------------
|   |   |   |   |
| A | B | C | D |
|   |   |   |   |
-----------------
|   |   |   |   |
| E | F | 1 | G |
|   |   |   |   |
-----------------
となります。

上記の形になった後、1を元のCに戻すと
-----------------
|   |   |   |   |
| A | B |   | D |
|   |   |   |   |
--------- C -----
|   |   |   |   |
| E | F |   | G |
|   |   |   |   |
-----------------
と、以前の状態に戻ってしまいます。

元に戻らない方法はありますか?
宜しくお願いいたします。


VB発展途上の初心者とも  2005-11-18 08:01:30  No: 127901

セルを表示したところがずれてしまいました。
見づらくなっていますが、宜しくお願いします。


特攻隊長まるるう  2005-11-18 18:53:07  No: 127902

思いつかないキーワードではないと思いますので、
過去ログ検索『MergeRow』とか『MergeCol』は実行した上で
過去に情報のない部分の質問をお願いします。

結論から言えばそのままではできません。
非表示の行を間に入れる等の工夫をして実現した例が紹介されていると思います。

過去ログを読んでも分からない場合は、参考にした過去ログのアドレスと
分からない部分の説明をお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加