[リストへもどる]
一括表示

投稿時間:2003/04/25(Fri) 17:26
投稿者名:brooklyn
Eメール:
URL :
タイトル:
MSFlexGridに関しての質問
MSFlexGridに関しての質問です。
よろしくお願いします。

フォーム上の3120,360,3615,3855に3行200列の
MDFlexGridを置きたいんですが、以下のコードだと
エラーが出てしまいます。
申し訳ありませんがお教えください。
よろしくお願いします。

Option Explicit

Private CurrentRowNo   As Integer  

Private Sub Form_Load()

    Dim lngCountI As Long

    'MSFlexGrid の初期設定
    With MSFlexGrid1
        .Move 3120, 360, 3615, 3855
        .Rows = 200                  
        .Cols = 3                  
        .FixedRows = 1              
        .FixedCols = 1              
        .Row = 0
        .ColWidth(0) = 430          
        .ColWidth(1) = 1800
        .ColWidth(2) = 550
        
        For lngCountI = 1 To 3
            .ColWidth(lngCountI) = 1000 ←ココなんです。
        Next lngCountI
        
        .RowHeight(0) = 350         '行の高さ
        '該当セルを 中寄/中寄 表示
        .CellAlignment = flexAlignCenterCenter
        .Col = 1: .Text = "氏  名"
        .CellAlignment = flexAlignCenterCenter
        .Col = 2: .Text = "性    別"
        .CellAlignment = flexAlignCenterCenter
        .Col = 0
                
        For lngCountI = 1 To .Rows - 1
            .RowHeight(lngCountI) = 350     '行の高さ
            .Row = lngCountI
            .Text = lngCountI               '行番号を表示
        Next lngCountI
        .Col = 1: .Row = 1
        
        .FocusRect = flexFocusNone
        .HighLight = flexHighlightAlways
   End With
  
   txtSimei.Text = ""
  
End Sub

Private Sub Form_Activate()
    
    txtSimei.SetFocus
    
End Sub

投稿時間:2003/04/25(Fri) 17:53
投稿者名:nobu
Eメール:
URL :
タイトル:
Re: MSFlexGridに関しての質問
>         .Cols = 3     <==== 4にする必要があるのでは? 4なら動くよ。                  
>        .Row = 0
>        .ColWidth(0) = 430          
>        .ColWidth(1) = 1800
>        .ColWidth(2) = 550    <=== これで0、1,2 の3ヶ

>         .FixedRows = 1              
>         .FixedCols = 1              
>         For lngCountI = 1 To 3

>         .Cols = 3 と言う事は0,1,2迄の3ヶですよね。
>         For lngCountI = 1 To 3 ここでは
0,1,2,3 迄の4ヶを指定しているので colが1ヶ不足でしょう。

投稿時間:2003/04/25(Fri) 19:29
投稿者名:brooklyn
Eメール:
URL :
タイトル:
Re^2: MSFlexGridに関しての質問
> >         .Cols = 3     <==== 4にする必要があるのでは? 4なら動くよ。                  
> >        .Row = 0
> >        .ColWidth(0) = 430          
> >        .ColWidth(1) = 1800
> >        .ColWidth(2) = 550    <=== これで0、1,2 の3ヶ
>
> >         .FixedRows = 1              
> >         .FixedCols = 1              
> >         For lngCountI = 1 To 3
>
> >         .Cols = 3 と言う事は0,1,2迄の3ヶですよね。
> >         For lngCountI = 1 To 3 ここでは
> 0,1,2,3 迄の4ヶを指定しているので colが1ヶ不足でしょう。

nobuさん、回答ありがとうございます。
早速試してみたんですが、「列の値が不正です。」と出ていて、前回同様のエラーです・・・。
私自身初めてのプログラミングなもので原因がほとんどわからない状態です。
どうか教えてください。
よろしくお願いします。

投稿時間:2003/04/25(Fri) 19:53
投稿者名:NEU(ノイ)
Eメール:
URL :
タイトル:
Re^3: MSFlexGridに関しての質問
nobuさんの書き込みは次のような意味です。

列数が4行ならば
>        .Cols = 3                  
              ↓
         .Cols = 4

列数が3行ならば
>        For lngCountI = 1 To 3
                           ↓
         For lngCountI = 0 To 2

にするということです。

投稿時間:2003/04/25(Fri) 20:22
投稿者名:brooklyn
Eメール:
URL :
タイトル:
解決しました。
> nobuさんの書き込みは次のような意味です。
>
> 列数が4行ならば
> >        .Cols = 3                  
>               ↓
>          .Cols = 4
>
> 列数が3行ならば
> >        For lngCountI = 1 To 3
>                            ↓
>          For lngCountI = 0 To 2
>
> にするということです。

解決しました!
NEU(ノイ)さん、ありがとうございました。

投稿時間:2003/04/25(Fri) 20:34
投稿者名:nobu
Eメール:
URL :
タイトル:
Re: 解決しました。
コード内容からして 「超初心者専用Q&A掲示板」 との
マルチポストではありませんか?
今後は止めましょうね。 ここの掲示板にも禁止のアナウンスがあります。

---------------
#98 「列の値が不正です。」と出てしまうんです・・・。
匿名98 2003年4月25日(金)19:43
----------------

投稿時間:2003/04/25(Fri) 20:44
投稿者名:brooklyn
Eメール:
URL :
タイトル:
Re^2: 解決しました。
> コード内容からして 「超初心者専用Q&A掲示板」 との
> マルチポストではありませんか?
> 今後は止めましょうね。 ここの掲示板にも禁止のアナウンスがあります。
>
> ---------------
> #98 「列の値が不正です。」と出てしまうんです・・・。
> 匿名98 2003年4月25日(金)19:43
> ----------------

大変失礼しました・・・。
深く反省しております。  

投稿時間:2003/04/25(Fri) 22:35
投稿者名:brooklyn
Eメール:
URL :
タイトル:
再びMSFlexGridの質問です。
先程は大変失礼しました。

オプションボタン2つをコントロール配列にして、
テキストボックスに氏名をオプションボタンで
(男性、女性)を選択してMSFlexGridの1列目に
氏名、2列目に性別を表示させるにはどうしたら
良いのでしょうか?
教えてください。
よろしくお願いします。

Private Sselected As Integer

Sselected = 0
optSeibetu(Sselected).Value = True

Private Sub optSeibetu_Click(Index As Integer)

    Select Case Sselected
    
        '男性の場合'
        Case 0
        
        ???????????
                    
        '女性の場合'
        Case 1
        
        ???????????
        
    End Select
    
End Sub

投稿時間:2003/04/25(Fri) 22:43
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 再びMSFlexGrid
左のフレームの MSFlexGrid関係 をご覧下さい。

投稿時間:2003/04/26(Sat) 18:01
投稿者名:brooklyn
Eメール:
URL :
タイトル:
見たんですが・・・
> 左のフレームの MSFlexGrid関係 をご覧下さい。

花ちゃんさん、ご指導ありがとうございます。
MSFlexGrid関係を閲覧したり、書籍でも調べたんですが、コントロール配列した
オプションボタンの結果(男性か?女性か?)をセルに記述する方法がどうにも
こうにもわからないんです。
どうかご指導ください。
よろしくお願いします。

投稿時間:2003/04/26(Sat) 18:40
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: MSFlexGrid関係を見たなら試しましょう
見たなら出来るはずですが?、まずは色々試して見て下さい。
MSFlexGridの主要プロパティ一覧表等にチョットした使い方が書いてありますし、
実際に使用しているコードも掲載されています。
意味を理解しないまま、コピーペして使おうとしても先の質問のように基本的な
事で行き詰ってしまいますよ
(ここのサンプルを使ってもらうのは結構ですが、他のサイトでは公開しないで下さいね)

実行しない事には、何も進みませんよ。
ここのサンプルの No.1〜No.5 までを自分でコードを打って試して下さい。
基本的な事が理解できるかと思います
解らない、プロパティやメソッド他が出てきたらその都度ヘルプで調べて、結果を
コメントとして記入するようにして見て下さい。
それで理解が出来たら、改造するなり、応用するなりして見て下さい。

今のままだったら、コードを書く度に質問の繰返しになりますよ!

前置が長くなりましたが今回の質問は、下記を使用すればできますよ

  MSFlexGrid1.TextMatrix(行番号, 列番号) = "表示したいデータ"