大変お世話になっております。
今、画面上に、表画面を作りたく、MSHFlexGridを使用しました。
そこで、例えば、表の一番左端の項目を大項目とした場合、2行〜複数行を
結合して、1つのセルにすることが出来るでしょうか?
┌────┬───┬──┐
│ │ │1 │
│ │中項目├──┤ 大項目:全体行で1セルに結合
│ │ │2 │
│大項目 ├───┼──┤
│ │ │3 │
│ │中項目├──┤ 中項目:2セル以上を1セルに結合
│ │ │4 │
└────┴───┴──┘
また、セルを結合しなくても、境界線だけ1部消すことは可能でしょうか?
┌────┬───┬──┐
│ │AAA│1 │
│ │ │ │←上段:境界線だけ消して、各セルにデータ表示
│ │BBB│2 │
│大項目 ├───┼──┤
│ │ │3 │
│ │中項目├──┤←下段:中項目セルを結合して1つのデータ表示
│ │ │4 │
└────┴───┴──┘
もし、MSHFlexGridまたはMSFlexGridで出来ない場合、他の方法があれば
是非教えて下さい。
よろしくお願い致します。
↑罫線が乱れて、見難くなってすみません。
よろしくお願いします。
前者の例では、5行分使えばOKです。
1列目: 1〜5行目に「大項目」と書く。
2列目: 1〜2、4〜5行目に「中項目」と書く。3行目は空。(または別の文字列)
このように設定しておき、3行目の高さをゼロにしてみてください。
魔界の仮面弁士殿>早速の回答ありがとうございます。
以下の様に、5行分に同じ名前(大項目)を設定しただけでは、
MSHFlexGrid1.TextMatrix(1, 0) = "大項目"
MSHFlexGrid1.TextMatrix(2, 0) = "大項目"
MSHFlexGrid1.TextMatrix(3, 0) = "大項目"
MSHFlexGrid1.TextMatrix(4, 0) = "大項目"
MSHFlexGrid1.TextMatrix(5, 0) = "大項目"
┌───┐
│大項目│
├───┤
│大項目│
├───┤
│大項目│
├───┤
│大項目│
├───┤
│大項目│
└───┘
上記のように、大項目が5行に表示されるだけで、結合して1つには
表示出来ませんでした。
もう少し詳しく教えていただければと思います。
どうぞ、よろしくお願い致します。
魔界の仮面弁士殿>前述セル結合は下記の通りで出来ました!
MSHFlexGrid1.TextMatrix(1, 0) = "大項目"
MSHFlexGrid1.TextMatrix(2, 0) = "大項目"
MSHFlexGrid1.MergeCells = flexMergeFree
MSHFlexGrid1.MergeCol(0) = True
下段の2行を知りませんでしたが、なんとか出来ました。ありがとうございます。
後述の、セル間の境界線非表示方法が分かれば、是非教えて下さい。
┌────┬───┬──┐
│ │AAA│1 │
│大項目 ├───┼──┤←ここの境界線を、下記のように消せますか?
│ │BBB│2 │
└────┴───┴──┘
↓
┌────┬───┬──┐
│ │AAA│1 │
│大項目 │ │ │←境界線(上下または左右)だけ消して、
│ │BBB│2 │ 各セルにデータ表示(セル結合ではない)
└────┴───┴──┘
度々の質問で申し訳ありません。是非よろしくお願いします。
> ここの境界線を、下記のように消せますか?
それはできませんが、ワードラップを有効にしておき、
改行を含んだテキストをセルに表示させることで
それに近い画面表示にする事ができます。
中項目、小項目にも、境界線を入れえると、大項目の境界(グループとして)
が見えにくいと思い、下表の様に、境界線をグループで消したかったのです。
AAAとBBB,111と222は、1セルの改行ではなく、
各々の1データで、境界線だけ消したかったのです。
ワードまたはエクセルの表で罫線を非表示するふうに。
┌────┬───┬────┐
│ │AAA│111 │
│ 1 │ │ │←境界線(上下または左右)だけ消して、
│ │BBB│222 │ 各セルにデータ表示(セル結合ではない)
├────┼───┼────┤
│ │CCC│333 │
│ 2 │ │ │
│ │DDD│444 │
├────┼───┼────┤
│ │EEE│555 │
│ │ │ │
│ 3 │FFF│666 │
│ │ │ │
│ │GGG│777 │
└────┴───┴────┘
消すのが無理な場合、線種を変えることは出来ますでしょうか?
┌────┬───┬────┐
│ │AAA│111 │
│ 1 ├------┼-------┤←境界線を破線とか、線の太さ、色を
│ │BBB│222 │ 変えれるとか…。
├────┼───┼────┤
│ │CCC│333 │
│ 2 ├------┼-------┤
│ │DDD│444 │
├────┼───┼────┤
│ │EEE│555 │
│ ├------┼-------┤
│ 3 │FFF│666 │
│ ├------┼-------┤
│ │GGG│777 │
└────┴───┴────┘
長い書き込みになってしまいましたが、回答、よろしくお願いします。
Labelと罫線の組み合わせで表を作成した方が良いのでしょうか…。
結論から言えば、罫線種の指定は、MS(H)FlexGridでは無理です。
環境が許すのであれば、MSHFlexGridの代わりに、
Microsoft Spreadsheetコントロールで代用してみては如何でしょう。
魔界の仮面弁士殿>返事が遅くなり申し訳ありません。
MS(H)FlexGridでの罫線枠が無理ということなので、
Microsoft Spreadsheetコントロールで挑戦してみました。
結果、理想通りの枠が出来ました。
そこで、新たな問題にぶつかったので、新規の質問とします。
MS(H)FlexGridの件は、どうもありがとうございました。
引き続きご指導お願いします。