はじめましてVB始めてもうすぐ1ヶ月の初心者です。MSFrexGridについてとても基本的なことで恐縮ですが、どうしてもうまくいかないので次の2点について教えて下さい。
(Q1).col毎に列を固定したりしなかったりするには、どうすればよいでしょうか。色々試したのですが、列やセル指定後に設定しても最後に指定した設定がGrid全体に適用されてしまいます。
(Q2)幅を0にした時、その列にデータが入ると文字の破片というか、その左隣りにヒゲのようなものが表示されてしまいます。エンドユーザに見せたくないのですが何か良い回避策はないでしょうか。構造体に持ってその列を最終的に削除するしかないのでしょうか。
環境はVB6(SP4)で、Win2000(SP2)です。ひょっとして(SP5)で解決??
よろしくお願いします。

A 回答 (2件)

(Q1)


MSFlexGridはおそらく出来ません
製品版(VsFlexGrid)ではBeforeUserResize イベントで出来ます

参考URL:http://www.boc.co.jp/support/database/P1_88.htm
    • good
    • 0
この回答へのお礼

カラム指定した後に設定すればできる気がしていたので悩んでましたが、すっきりしました。
ちょっと残念ですが、出来ないから製品になっているのですね。
todo36さん、貴重なご回答ありがとうございました。
また宜しくお願いします。

お礼日時:2001/09/25 19:27

ちょっとお聞きしたいんですが。


>(Q1).col毎に列を固定したりしなかったりするには、どうすればよいでしょうか。
これは、col毎に固定列数を変えるということですか?補足をお願いします。
Q2については、VB6(SP5)ではそのようなことはないですよ。(ちなみにWin2000(SP2))
なお、固定列のすぐ隣を隠すと、固定列と2列目の間の線が少しぼやけてしまいますが。
では。

この回答への補足

maruru01さん、はじめまして。
(Q1)はご指摘の通り1列目はflexResizeNone、2列目はflexResizeColumns、
3列目はflexResizeNone…というようなことができるか知りたいです。
(Q2)は(SP5)へのUPを検討してみます。とても参考になりました。
よろしくお願いします。

補足日時:2001/09/25 10:55
    • good
    • 0
この回答へのお礼

(Q2)は原因が分りました。表示列と同様にColAlignmentで文字を中央に表示指定していたためでした。
指定を外してデフォルトのままにしたら”ヒゲ”は消えました。
お騒がせしました。
これからも、また宜しくお願いします。

お礼日時:2001/09/25 19:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVB データテーブルA列とB列があった時、B列の1行目から1stepずつデータを入力していきたい

AddDataTableRowメソッドにて
1月として、A列は日付で先に31日分の行が作成されます。その際にB行はNothingで生成しました。
私は、A列はそのままでB列の1行目から1つずつ書き込んでいくコーディングが知りたいです。
現在はAddDataTableRowのためA列の最後の行の次の行が追加され入力されてしまいます。

Aベストアンサー

whereで列BがNothingだけにして、列AのMinの値を取得
列A指定して、狙い打ちでUpdate

QVB6で指定したエクセルの列を削除したい。

29列ある表なんですが、その内見出しと対応するチェックボックスにチェックが入っていた場合その列を削除して表を詰めたいのですが、うまくいきません。(きれいに削除になりません。)何か方法はないでしょうか。

Rem 非出力項目を非出力にする
For i = 1 To 29
If .Cells(1, i).Text = "AAA" And Frm設定.ChkAAA.Value = 1 Then .Columns(i).Delete
If .Cells(1, i).Text = "BBB" And Frm設定.ChkBBB.Value = 1 Then .Columns(i).Delete
If .Cells(1, i).Text = "CCC" And Frm設定.ChkCCC.Value = 1 Then .Columns(i).Delete
If .Cells(1, i).Text = "DDD" And Frm設定.ChkDDD.Value = 1 Then .Columns(i).Delete
If .Cells(1, i).Text = "EEE" And Frm設定.ChkEEE.Value = 1 Then .Columns(i).Delete
中省略(全部で12項目あります)
Next i

29列ある表なんですが、その内見出しと対応するチェックボックスにチェックが入っていた場合その列を削除して表を詰めたいのですが、うまくいきません。(きれいに削除になりません。)何か方法はないでしょうか。

Rem 非出力項目を非出力にする
For i = 1 To 29
If .Cells(1, i).Text = "AAA" And Frm設定.ChkAAA.Value = 1 Then .Columns(i).Delete
If .Cells(1, i).Text = "BBB" And Frm設定.ChkBBB.Value = 1 Then .Columns(i).Delete
If .Cells(1, i).Text = "CCC" A...続きを読む

Aベストアンサー

こんばんは。

カウンター、i を1ずつアップしながら確かめてみれば分かると思いますが、
提示のコードのように単純にループして列(行)を削除する時は、
最終列(行)の方から始まりの方へループしないと拙いです。

  For i=1 to 29

ではなくて、

  For i=29 to 1 step -1

としましょう。
 

QVB6(SP5)とVB.NET のテキストボックス等の配列について

VB6(SP5)で、プログラミングをしております。
現在、VB.NETを勉強中です。
1つ疑問が出てきました。Text1等のインデックス
プロパティが無い様なのですが、配列のテキストボッ
クスやラベルは無いのでしょうか?
宜しくお願い致します。

Aベストアンサー

コントロール配列は、.NET Frameworkではサポートされません。

ただし、ないわけではないです。コントロール配列を使ったVB6製アプリをコンバートすると特殊なコンポーネントで置き換えられますので。
ただし、これからのことを考えるといまさら使わないのが賢明です。

Qエクセル たとえばA列の値が ○ と成った時 その行のB列のセルに斜め線を入れたいのです

  A    B
  ○   /(書式の罫線の斜線です)
  11       
  ○   /
  12

といった具合にするには どの様なコードを書けばよいのでしょうか
初心者で説明不足の段はお許しください
ご指南お願いいたします

Aベストアンサー

下記のコードを
Sheetのコードモジュールに書いてください。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If Target.Value = "○" Then
With Cells(Target.Row, 2).Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End If
End If
End Sub

Q重複列があり、その他の列を同じ列にかえす

こういったselect文ってつくれるんでしょうか?
ネットで調べてもこういった答えが見つけられなかったので…
おわかりの方いましたら、よろしくお願いします。

列1  | 列2  | 列3

1    |りんご  |きゅうり
1    |みかん  |なす
2    |かき   |はくさい
2    |なし    |キャベツ
3    |もも    |ごぼう
3    |キウイ  |きのこ



1   |りんご/みかん|きゅうり/なす
2   |かき/なし   |はくさい/キャベツ
3   |もも/キウイ  |ごぼう/きのこ

っていうことがしたいんですが…
列1の重複ごとにまとめて、2、3をまとめて1つの列にいれるような
selectで表示されるような文です。
2、3は一応文字列なので、集計とか考えていないです。

Aベストアンサー

ムリです。

列2の内容を他のレコードの列2とバインドするようなSQLはかけません。用意されていません。
どうしてしたのら、VBとかフォロントエンドで処理をしてください。


人気Q&Aランキング

おすすめ情報