
お世話になります
VB6のMSFlexGridでセルをマージしたいのですがうまくいきません
行イメージは以下になります。
------------------
| AA | 1 | 2 | 3 |
-------------
| | A | B | C |
------------------
| AA | 4 | 5 | 6 |
-------------
| | D | E | F |
------------------
| BB | 1 | 2 | 3 |
-------------
| | A | B | C |
------------------
| BB | 4 | 5 | 6 |
-------------
| | D | E | F |
------------------
1行目と2行目の先頭をマージしてtext="AA"
3行目と4行目の先頭をマージして上と同じtext="AA"
5行目と6行目の先頭をマージしてtext="BB"
7行目と8行目の先頭をマージして上と同じtext="BB"
flexMergeFreeもMergeRowも試したつもりなのですが、うまくいきませんでした。
記述の順番なのかな?
With oObjGrid
.Col = 0
.Row = 0
.Text = "AA"
.Row = 1
.Text = "AA"
' ※ここでマージ処理を試したつもり
.Row = 2
.Text = "AA"
.Row = 3
.Text = "AA"
' ※ここでマージ処理を試したつもり
.Row = 4
.Text = "BB"
.Row = 5
.Text = "BB"
' ※ここでマージ処理を試したつもり
.Row = 6
.Text = "BB"
.Row = 7
.Text = "BB"
' ※ここでマージ処理を試したつもり
End With
※以下を色々な順番で試したのですが、だめでした
.MergeCells = flexMergeFree
.MergeRow(0) = True
.MergeRow(1) = True
.MergeCells = 2 'マージの指定
.MergeCells = 3 'マージの指定
No.2ベストアンサー
- 回答日時:
列をマージするのだからMergeRow()ではなくMergeCol()ですね。
No1さんも書かれていますが、マージは隣接するセルの内容が同じならくっつけちゃうので
1行目~4行目、5行目~8行目までの4行がマージの対象になります。
回避策は空白行を挿入します、今回の場合は2行毎です。
With oObjGrid
.Rows = 1
.MergeCells = flexMergeRestrictColumns
.MergeCol(0) = True
.AddItem "AA" & vbTab & "1" & vbTab & "2" & vbTab & "3"
.AddItem "AA" & vbTab & "A" & vbTab & "B" & vbTab & "C"
.AddItem "" '空白行を挿入
.RowHeight(.Rows - 1) = 0 '空白行の高さを0に(非表示)
.AddItem "AA" & vbTab & "4" & vbTab & "5" & vbTab & "6"
.AddItem "AA" & vbTab & "D" & vbTab & "E" & vbTab & "F"
.AddItem "" '***
.RowHeight(.Rows - 1) = 0 '***
.AddItem "BB" & vbTab & "1" & vbTab & "2" & vbTab & "3"
.AddItem "BB" & vbTab & "A" & vbTab & "B" & vbTab & "C"
.AddItem ""
.RowHeight(.Rows - 1) = 0
.AddItem "BB" & vbTab & "4" & vbTab & "5" & vbTab & "6"
.AddItem "BB" & vbTab & "D" & vbTab & "E" & vbTab & "F"
.AddItem "" '***
.RowHeight(.Rows - 1) = 0 '***
End With
'***の行は無くてもかまいませんが、セルの位置を計算する場合に規則性がないと困りますからね。
回答ありがとうございました
かなり勘違いしていたようで
てっきり.Colで指定した列の
MergeRow番目がマージされるのだと思っていました。
おかげさまですっきりした状態で、解決する事が出来ました。
追伸
空白行ではなく、文字の後ろにスペースを追加で、余計なマージも回避できました
No.1
- 回答日時:
どううまくいかないのか、
' ※ここでマージ処理を試したつもり
↑どういう意味なのか不明です。処理?何の?
コードが無いなら処理とは言わないですが。
マージの仕様が同じデータが連続してたらセルを
くっつけちゃう設定だから、"AA"が連続してたら
全部くっつくという話?そういう仕様だったと
思いますが?ヘルプとかは読んだんですか?
順番???プロパティに最後に設定した値しか
有効じゃないでしょう???
非表示の空白行を2行ごとにはさんでおくとか
工夫した事はありますね。。。インデックス指定は
通常通り指定しても空白行を計算して該当のセル
から値をとってくる関数を自作して。
もはやVB6の開発環境が残ってないですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
UMLでの例外処理
-
メルカリのメルカードで買い物...
-
取り消し線が入った文字を削除...
-
VBAでCOPYを繰り返すと、処理が...
-
インタラクティブの反対語は?
-
VBAでループ内で使う変数名を可...
-
EXCEL VBA マクロ 実行する度に...
-
DoEventsがやはり分からない
-
パソコンについて GPUをCPUの代...
-
汎用機(ACOS)におけるJCLの記...
-
vba 空のデータをSplitする時の...
-
変数が""(空文字)かどうか判別...
-
【Excel】特定の文字を含むセル...
-
お家デートをしててハグを長い...
-
switch の範囲指定
-
条件付きコンパイル: #IF 1 Th...
-
JDBCでの大量データ検索でResul...
-
Do Until rs1.EOF であるレコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
VBAでループ内で使う変数名を可...
-
EXCEL VBA マクロ 実行する度に...
-
UMLでの例外処理
-
銀行の窓口処理の件で知ってる...
-
VBAでCOPYを繰り返すと、処理が...
-
月度は何て読みますか?
-
インタラクティブの反対語は?
-
VB.NET DataGridViewでIsNewRo...
-
DoEventsがやはり分からない
-
VBの質問#if 0 then ってどう...
-
お家デートをしててハグを長い...
-
セックスレスの既婚女性は自慰...
-
VB.NET Excelを読み込んでDataT...
-
リョウ・・・量?料?
-
メルカリのメルカードで買い物...
-
Loadイベント中にほかのイベン...
おすすめ情報