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

投稿時間:2003/08/23(Sat) 23:04
投稿者名:赤ちゃん
Eメール:
URL :
タイトル:
動的配列?
フレキシブルグリッドを使って、

Aのフレキシブルグリッドに「10〜23」の出勤のある者がいて、Bのフレキシブルグリッドの「10」〜「23」の間に「1」を置き、もう一人「10〜23」のシフトがあったら、「2」になる

というプログラムなのですが、どうやったらいいのでしょうか?

投稿時間:2003/08/23(Sat) 23:45
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 動的配列?
セルの値=セルの値+1 という事ではないのですか?

投稿時間:2003/08/23(Sat) 23:51
投稿者名:赤ちゃん
Eメール:
URL :
タイトル:
Re^2: 動的配列?
    With frmMain.msgMain
        For i = 1 To .Rows - 1
            If .TextMatrix(i, 30) = "" Or .TextMatrix(i, 31) = "" Then
                Num1(i) = 0
            ElseIf .TextMatrix(i, 30) <> "" And .TextMatrix(i, 31) <> "" Then
                Num1(i) = 1
            End If
            NumTotal1 = NumTotal1 + Num1(i)
            If .TextMatrix(i, 30) <> "" And .TextMatrix(i, 31) <> "" Then
                For j = .TextMatrix(i, 30) - 6 To .TextMatrix(i, 31) - 7
                    msgTimeTable.TextMatrix(j, 1) = NumTotal1
                Next
                msgTimeTable.TextMatrix(24, 1) = NumTotal1
            End If
        Next
    End With

だとうまくいかないのです。(i, 30)は出勤時間、(i, 31)は退勤時間です。

投稿時間:2003/08/24(Sun) 00:29
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: 動的配列?
投稿されたコードだけでは確認はできませんが、下記ではどうでしょうか?

For j = .TextMatrix(i, 30) - 6 To .TextMatrix(i, 31) - 7
    msgTimeTable.TextMatrix(j, 1) = msgTimeTable.TextMatrix(j, 1) + NumTotal1
Next
’こちらは何をしているかよくわかりませんが、上記と同じく加算するなら
msgTimeTable.TextMatrix(24, 1) = msgTimeTable.TextMatrix(24, 1) + NumTotal1

投稿時間:2003/08/24(Sun) 00:37
投稿者名:赤ちゃん
Eメール:
URL :
タイトル:
Re^4: 動的配列?
> 投稿されたコードだけでは確認はできませんが、下記ではどうでしょうか?
>
> For j = .TextMatrix(i, 30) - 6 To .TextMatrix(i, 31) - 7
>     msgTimeTable.TextMatrix(j, 1) = msgTimeTable.TextMatrix(j, 1) + NumTotal1
> Next

上記のようだと、実行時エラー、型が一致しませんとなります。まずこの状況を詳しく伝えたいのですが、、、

投稿時間:2003/08/24(Sun) 01:00
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: 動的配列?
> > 投稿されたコードだけでは確認はできませんが、下記ではどうでしょうか?
> >
> > For j = .TextMatrix(i, 30) - 6 To .TextMatrix(i, 31) - 7
> >     msgTimeTable.TextMatrix(j, 1) = msgTimeTable.TextMatrix(j, 1) + NumTotal1
> > Next
>
> 上記のようだと、実行時エラー、型が一致しませんとなります。まずこの状況を詳しく伝えたいのですが、、、


msgTimeTable.TextMatrix(j, 1) はMSFlexGridのセルじゃないのですか?
そしてmsgTimeTable.TextMatrix(j, 1)に入っているデータに1か0をプラスしたいのじゃ
ないのですか?
msgTimeTable.TextMatrix(j, 1)に入っているデータはどのようなでーたなのですか(数値Or文字)
その時間に勤務している人数じゃないのですか。

投稿時間:2003/08/24(Sun) 01:27
投稿者名:赤ちゃん
Eメール:
URL :
タイトル:
Re^6: 動的配列?
msgTimeTable.TextMatrix(j, 1)のデータは数値です。がエラーが出ます。データ型の宣言が必要でしょ
うか?

投稿時間:2003/08/24(Sun) 01:41
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^7: 動的配列?
> msgTimeTable.TextMatrix(j, 1)のデータは数値です。がエラーが出ます。データ型の宣言が必要でしょ
> うか?
変数の型を宣言しておくのは基本かと思います。
フォームのコードの先頭に Option Explicit を入れておいて下さい。

又、 F8 キーを押して1行づつ実行しながら各変数の値が希望するものになっているか
確認して下さい。
そうすれば原因が解るはずです。

特に下記の.TextMatrix(i, 30) の値  .TextMatrix(i, 31)の値
For j = .TextMatrix(i, 30) - 6 To .TextMatrix(i, 31) - 7
    msgTimeTable.TextMatrix(j, 1) = msgTimeTable.TextMatrix(j, 1) + NumTotal1
Next

この部分 msgTimeTable.TextMatrix(j, 1) = msgTimeTable.TextMatrix(j, 1) + NumTotal1
でエラーが発生しているのであれば、msgTimeTable.TextMatrix(j, 1)の値等をよく調べて下さい。