• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:乱数について。)

エクセルVBAでランダムに問題を出題するプログラムの強制停止後の挙動について

このQ&Aのポイント
  • エクセルVBAで作成したランダムに問題を出題するプログラムは、強制停止後に再度問題を始めると、停止した時の問題と同じ順序で出題される現象が発生します。
  • 強制停止さえしなければ問題なく動作するため、問題の発生は仕様の問題ではなく、コーディングに原因がある可能性があります。
  • コーディングを見直し、ランダムに問題を出題するたびに異なる順序で問題が出るように修正することをおすすめします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

乱数とは一見でたらめな数字を作り出すように見えて、実は内部的にはある元の数値を元に複雑な計算をしてランダムな数値を生成し、生成された乱数を元にまた次の乱数が生成されるような仕組みになっています。 したがって、その「元の数値」というのがいつも同じであれば、毎回同じ乱数が生成されることになります。 それを避けるために、プロシージャの先頭に Randomize という一文を入れてみてください。これは乱数発生ルーチンを初期化する命令で、先の説明で書いた「元の数値」をTimer関数の戻り値(つまり現時刻を表す数値)に設定します。こうすると、実行するたびに時刻は変化するので、乱数も毎回違う値になります。

Abideby
質問者

お礼

アドバイスありがとうございます! 見事に解決しました!本当に助かりました!! Randomizeって凄いですねぇ・・・。 どうもありがとうございました!

関連するQ&A