
お世話になります
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Visual Basic(VBA) Excel VBA 複数ブックシートごとにデータを統合する方法について 4 2022/05/20 14:23
- Visual Basic(VBA) フレーム内のオプションボタンの選択結果をセルに書き出したい。 図のような預金種目というフレームにオプ 2 2022/07/29 11:12
- その他(ニュース・社会制度・災害) 日本って良い国だと思いますか? 良い国なら、なんでこんなことになっているんでしょうか? https: 9 2023/02/15 18:07
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- 物理学 プラズマ運転と核融合運転は、違うものなのでしょうか? プラズマ運転と核融合運転は、全く違うものなので 2 2023/04/30 16:34
- Wi-Fi・無線LAN パソコンの初期設定で分からないことがあります。 4 2022/10/27 21:09
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Visual Basic(VBA) 複数ブックの統合について Excel VBA 1 2022/05/13 09:48
- 工学 プラズマ運転と核融合運転は、違うものなのでしょうか? 1 2023/04/30 10:14
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
switch の範囲指定
-
男性に対して、『女性への気遣...
-
月度は何て読みますか?
-
EXCEL VBA マクロ 実行する度に...
-
DoEventsがやはり分からない
-
インタラクティブの反対語は?
-
VBAでCOPYを繰り返すと、処理が...
-
【Excel】特定の文字を含むセル...
-
vba 空のデータをSplitする時の...
-
VBA 特定の文字が入力されたセ...
-
UMLでの例外処理
-
2重のDo~Loopは?
-
MacBook AirとMacBook Proの違...
-
Loadイベント中にほかのイベン...
-
Do~Loopした回数をカウントしたい
-
1〜100の中で if(2の倍数) else...
-
JDBCでの大量データ検索でResul...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
EXCEL VBA マクロ 実行する度に...
-
UMLでの例外処理
-
DoEventsがやはり分からない
-
月度は何て読みますか?
-
お家デートをしててハグを長い...
-
VB.NET Excelを読み込んでDataT...
-
VBの質問#if 0 then ってどう...
-
Do~Loopした回数をカウントしたい
-
VBAでCOPYを繰り返すと、処理が...
-
メルカリのメルカードで買い物...
-
インタラクティブの反対語は?
-
Loadイベント中にほかのイベン...
-
リョウ・・・量?料?
-
vba 空のデータをSplitする時の...
-
findは動くがfindnextがマクロ...
おすすめ情報