お世話になります
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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
MSFlexGridとDataGridの違いについて
Visual Basic(VBA)
-
【VB6.0】 あるフォームから他のフォームへ値を受け渡したい
Visual Basic(VBA)
-
-
4
MSFlexGridのデータ表示位置の設定
Visual Basic(VBA)
-
5
MSDNのコレクションがありません。MSDNを再インストールしてください。
Visual Basic(VBA)
-
6
vb6のVSFlexGridで選択行、列の値を取得し構造体に入れたい
Visual Basic(VBA)
-
7
VB6 開発環境のエディタに行番号を表示
Visual Basic(VBA)
-
8
VB6.0のIsNull関数に相当するもの
Visual Basic(VBA)
-
9
vb6で異なるのプロジェクト間で、値を渡したい
Visual Basic(VBA)
-
10
MSFlexGrid
Visual Basic(VBA)
-
11
InputMan の imTextについて
Visual Basic(VBA)
-
12
文字の点滅はどうやるのですか?
Visual Basic(VBA)
-
13
Flexgridで選択行の列の値を取得したい
Visual Basic(VBA)
-
14
VBの「As String * 128」とは?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
【Excel】特定の文字を含むセル...
-
エクセルで、日付を入力すると...
-
EXCEL VBA マクロ 実行する度に...
-
メルカリのメルカードで買い物...
-
switch の範囲指定
-
VBAでループ内で使う変数名を可...
-
VBA SaveChanges 上書きされない
-
DoEventsがやはり分からない
-
UMLでの例外処理
-
VBの質問#if 0 then ってどう...
-
VB.NET Excelを読み込んでDataT...
-
C言語 b += a ? 1 : 0; の意味
-
リョウ・・・量?料?
-
VBAでセルに値が入力されるまで...
-
Select Case文でこのようなこと...
-
変数が""(空文字)かどうか判別...
-
findは動くがfindnextがマクロ...
-
アルミ アルマイト処理とアノ...
-
VB6,Ifから抜けるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
EXCEL VBA マクロ 実行する度に...
-
DoEventsがやはり分からない
-
UMLでの例外処理
-
月度は何て読みますか?
-
switch の範囲指定
-
VBの質問#if 0 then ってどう...
-
セルの値が0はクリアするマクロ
-
VB.NET Excelを読み込んでDataT...
-
Do~Loopした回数をカウントしたい
-
Loadイベント中にほかのイベン...
-
Select Case文でこのようなこと...
-
findは動くがfindnextがマクロ...
-
緊急です。 知り合いから50kgの...
-
リョウ・・・量?料?
-
理不尽、行き場のないイライラ...
おすすめ情報