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 |
| | | | |
-----------------
と、以前の状態に戻ってしまいます。
元に戻らない方法はありますか?
宜しくお願いいたします。
セルを表示したところがずれてしまいました。
見づらくなっていますが、宜しくお願いします。
思いつかないキーワードではないと思いますので、
過去ログ検索『MergeRow』とか『MergeCol』は実行した上で
過去に情報のない部分の質問をお願いします。
結論から言えばそのままではできません。
非表示の行を間に入れる等の工夫をして実現した例が紹介されていると思います。
過去ログを読んでも分からない場合は、参考にした過去ログのアドレスと
分からない部分の説明をお願いします。
ツイート | ![]() |