[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/04/25(Tue) 10:03
投稿者名:つぼちゃん
Eメール:
URL :
タイトル:
ランダム関数について
ランダム関数についてですが、プログラムを実行してからの1回目の結果が
毎回同じになってしまいます。

Private Sub Command1_Click()

    Dim i As Integer

    For i = 0 To 5
        Text1(i).Text = Int(43 * Rnd + 1)
    Next

End Sub

を実行すると、プログラムを実行してからの1回目の結果が毎回
31,23,25,13,13,34 となってしまいます。
同様に2回目は必ず
1,33,36,31,2,18
となってしまいます。
こういうものなのでしょうか。

投稿時間:2006/04/25(Tue) 10:07
投稿者名:Blue
Eメール:
URL :
タイトル:
Re: ランダム関数について
Randomizeステートメントについて調べてみてください。

投稿時間:2006/04/25(Tue) 10:17
投稿者名:つぼちゃん
Eメール:
URL :
タイトル:
解決
> Randomizeステートメントについて調べてみてください。

ありがとうございました。
僕が参考にしたサンプルにはのっていなかったので、Randomizeというものを知りませんでした。

投稿時間:2006/04/25(Tue) 11:05
投稿者名:Blue
Eメール:
URL :
タイトル:
Re: 解決
どこかにあるサンプルも良いですが、ヘルプぐらいは見ておきましょう。

MSDN「Rnd 関数」
hhttp://www.microsoft.com/JAPAN/developer/library/Vbenlr98/vafctrnd.htm
<引用>
初期シード値が変わらない限り、一連の Rnd 関数が返す乱数系列は同じになります。
これは、連続する各 Rnd 関数が乱数系列の中の直前の乱数をシード値として、次の乱
数をそれぞれ生成するためです。

システム タイマーから取得した新しいシード値を使って、乱数ジェネレータを初期化
するには、Rnd 関数を呼び出す前に、引数を指定せずに Randomize ステートメントを
実行してください。
</引用>