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

投稿時間:2003/08/01(Fri) 13:31
投稿者名:Moto
Eメール:
URL :
タイトル:
変数について教えて下さい。
こんにちは。
VB初心者で、投稿するのも初めてですので、うまく伝わるか不安です。
VB6.0を使用しております。
教えていただきたい事ですが、変数の使い方です。
TextBox1にデータを書き込みする都度、変数に入れておき、過去
何回かの平均をTextBox2出力させるという事ですが、この格納用の変数の
個数を可変に(TextBox3に入力した数を見て)したいのです。
私の知識では下記の所までしか出来ません。

Dim a(4) As Long
Private Sub Text1_Change()
a(4) = a(3)
a(3) = a(2)
a(2) = a(1)
a(1) = a(0)
a(0) = Val(Text1.Text)
Text2.Text = (a(4) + a(3) + a(2) + a(1) + a(0)) / 5

ヘルプのここを良く読め、でも何でもかまいません。
どうか、ご教授宜しくお願いいたします。

投稿時間:2003/08/01(Fri) 14:27
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 変数について教えて下さい。
ReDim Preserve a(Count) As Long のように宣言すれば、配列を順次追加できます。
詳しくは、ReDim をヘルプで見て下さい。

データの個数がIntegerの範囲なら、非表示のリストボックスにデータを格納するのが
簡単かと思います。
データの個数も特に管理せずとも取得でき、平均値を出すには便利かと思います。
又、並び替えもできますし。

投稿時間:2003/08/04(Mon) 11:37
投稿者名:Moto
Eメール:
URL :
タイトル:
Re^2: 変数について教えて下さい。
こんにちは。
花ちゃん様、回答有り難う御座います。

> データの個数がIntegerの範囲なら、非表示のリストボックスにデータを格納するのが
> 簡単かと思います。
> データの個数も特に管理せずとも取得でき、平均値を出すには便利かと思います。

教えて頂きましたように、リストボックスを使った物を、私なりに作ってみました。
近くにVBの知っている人がいない為、この様なコードで良いのか解かりません。
コードを下記致しますので、ご指摘お願いいたします。

Private Sub Form_Load()

List1.Visible = False

End Sub

Private Sub Text1_Change()

Dim a, b, c, d, e, f, g As Long

a = Val(Text1.Text)       ' データ値入力

List1.AddItem (a)            ' リストボックスに書き込み
b = List1.ListCount
c = Val(Text2.Text)          ' リストボックスの表示数入力
d = b - 1

If c > d Then                ' 条件 TextBox2の値以下の時
For e = 0 To d
f = Val(List1.List(e))
g = g + f
Text3.Text = Round(g / b, 2)   ' TextBox3にList1の表示数の平均を表示
Next e
Else
For e = 1 To d                 ' 条件 TextBox2の値以上の時
f = Val(List1.List(e))
g = g + f
Text3.Text = Round(g / d, 2)   ' TextBox3にList1の表示数の平均を表示
Next e
End If

If b > c Then
List1.RemoveItem (0)           ' TextBox2の値以上の時Item1を削除
End If

End Sub

リストボックスに表示されている値の平均値を出す時に、関数(Avg)
か何かで平均を出すことは、出来ないでしょうか。

又、Text1_Changeを使うには何か問題が有るのでしょうか。

宜しくお願いいたします。
                          Moto

投稿時間:2003/08/04(Mon) 14:44
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: 変数について教えて下さい。
> 近くにVBの知っている人がいない為、この様なコードで良いのか解かりません。
> コードを下記致しますので、ご指摘お願いいたします。

自分が理解できて、満足のいく結果が得られれば、それが一番良いかと思います。
その内に理解が深まり、何度か改良を重ねていくとよりよいものになるかと思います。


下記の変数の宣言方法は、ここの変数関係を参考に書き直して見て下さい。
> Dim a, b, c, d, e, f, g As Long


> リストボックスに表示されている値の平均値を出す時に、関数(Avg)
> か何かで平均を出すことは、出来ないでしょうか。

VBにはそのような関数は用意されていません。必要なら自分で作って下さい。



> 又、Text1_Changeを使うには何か問題が有るのでしょうか。

下記のサイトで同様の質問されている方がおられます。その方の投稿が参考になるでしょう。


 #165 データ数が不明な場合の足し算の繰り返し処理 
 http://www2j.biglobe.ne.jp/~little-g/cgi-bin/choshoqa.cgi

投稿時間:2003/08/05(Tue) 13:09
投稿者名:Moto
Eメール:
URL :
タイトル:
Re^4: 変数について教えて下さい。
こんにちは。
花ちゃん様、色々丁寧に教えていただき、有り難う御座います。
自分自身の、望む結果は出ていると思うのですが、どうも自信が無くて。

> 自分が理解できて、満足のいく結果が得られれば、それが一番良いかと思います。
> その内に理解が深まり、何度か改良を重ねていくとよりよいものになるかと思います。

お教えのように、何度か改良を重ねて見たいと思います。
今回は、どうも有り難う御座いました、又宜しくお願いいたします。

                               Moto