
コマンドボタンを押すごとに画像をランダムに表示したいのですが
決まった順番で表示されてしまいます。
(画像はMy Picturesに440個入っています。)
Sub ボタン_Click()
Dim i As Long
'画像をランダムに表示
i = Int((440 - 1 + 1) * Rnd + 1)
Forms("フォーム1").ボタン.Picture = "D:\My Documents\My Pictures\画像" & i & ".ico"
Debug.Print i
End Sub
コマンドボタンを何回かクリックし
上記のコート゛を実行してイミディエイトウインドウで確認すると
311
235
255
128
133
341
7
335
359
となります。
何回やってもこの順番です。
なんの規則かわかりません。
確かにランダムなのですが
本当にランダムにするのはどうすればいいでしょうか?
「i = Int((440 - 1 + 1) * Rnd + 1)」
ここに原因があると思うのですが
どうすればいいでしょう?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
fujillinさんの回答のとおりだと思います。
各種ランダム関数は疑似ランダムを生成する計算式があるだけで、その計算に使用する[ランダムシード]という値があります。
通常は標準値が決まっているため、プログラムを起動する度に標準シードから乱数を計算するため毎回同じ値が帰ってきます。
よって、毎回異なる数値が必要になる場合にはプログラムのはじめにシードの初期化を行います。
普通はこの時にシードをコンピュータの時計の値(システム タイマー)にします。
(全く同じ年月日時分秒で起動することは希だから)
fujillinさんのアドバイスにある[ Randomize ]は、特に何も指定しない場合にはシステム タイマーを元に初期化するので、
プログラム起動時か、又はボタンイベントの度にRandomizeされるようにしておけば毎回異なる乱数が帰ってくるはずです。
参考URL:http://homepage2.nifty.com/pasocon/nyumon/rnd.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
血液検査の結果が悪くefgrの値...
-
小数点以下を繰り上げたものを...
-
リンク先のファイルを開かなく...
-
透亮像について。 先日会社の健...
-
excelでsin二乗のやり方を教え...
-
excel関数で TRUEやFALSEについて
-
イタリアから帰国する際、肉製...
-
【エクセル】0以外が入力され...
-
MIN関数で空白セルを無視したい...
-
Excel 0目標に対して数字があ...
-
「内数」という言葉の意味がよ...
-
ワードのページ番号をもっと下...
-
値が入っているときだけ計算結...
-
Excel 数値の前の「 ' 」を一括...
-
WORDで複数語句を検索するには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
アトピー性皮膚炎
-
コロナになるのが死ぬほど怖い...
-
検便についてです。 便は取れた...
-
24歳、女性です。性欲が強すぎ...
-
未成年の従姉妹が自分の真似絵...
-
頭痛に関する質問です。現在高...
-
血液検査の結果が悪くefgrの値...
-
肝臓がんになりたいです。肝機...
-
何故 削除され続けるか、
-
◎敢えてノンジャンルカテゴリー...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
風俗店へ行く前のご飯
-
2つの数値のうち、数値が小さい...
-
病院側から早く来てくださいと...
-
EXCELで条件付き書式で空白セル...
-
Excel 数値の前の「 ' 」を一括...
-
リンク先のファイルを開かなく...
-
値が入っているときだけ計算結...
おすすめ情報