2009-07-23 14 views
4

私は疑似乱数生成関数/変数Rndを使うことができます。しかし、私は私のユーザーフォームでのRndを使用するたびに、数字のこのシーケンスは常に表示ことに気付きました:vbaより現実的な乱数生成器

最初の反復:0.705547511577606 2回目の反復:0.533424019813538 ...結果

、B /私がユーザーフォームを再起動するたびに、表示される数字のシーケンスは同じですが、ランダムではありません。 VBA関数セットに他の関数がありますが、それはよりランダムに感じるでしょうか?前もって感謝します。

答えて

10

Rndを呼び出す前に、Randomize Timerに1回の通話を追加してみてください。これは、時刻を使って乱数ジェネレータをシードします。

+0

感謝。この提案は非常にうまく機能します。 – stanigator

2

私はVBについてよく分かりませんが、シード番号ジェネレータが必要です。私はVBのためにRandomizeそれを行うと思います。

0

は手動で...一日の時間に基づいてシードを設定し、あなたのVBAコードの先頭に次のようなものを挿入することができます:

For i = 0 To (CInt(Format(Time, "ms"))) 'minutes and seconds turned to integer 
     test_random = Rnd() 
    Next