フォームをランダムに呼び出すには?

解決


魔鬼  2004-01-14 14:36:55  No: 111279  IP: [192.*.*.*]

ボタンを押したらフォームがランダムで表示させる方法がわかりそうでわからないのですが、どなたかわかる人がおられたら教えてください。お願いします。あと一回表示したらかぶらないようにする方法もできればお願いします。

編集 削除
Say  2004-01-14 14:45:42  No: 111280  IP: [192.*.*.*]

複数のFormのなかから、という意味でしょうか?
Formがn個あるなら、
0〜n-1の整数をシャッフルして配列に入れ、
順に取り出して、それをIndex値として
formsコレクションで取り出すとか・・・

編集 削除
魔鬼  2004-01-14 14:48:22  No: 111281  IP: [192.*.*.*]

説明不足でしたね。複数のフォームの中からどれかをとりだすということです。

編集 削除
魔鬼  2004-01-14 14:57:59  No: 111282  IP: [192.*.*.*]

なにぶん初心者の中の初心者なので適当でいいんでソースを表示してもらえれば幸いなのですが・・・ぜひお願いします。

編集 削除
kana  2004-01-14 15:49:28  No: 111283  IP: [192.*.*.*]

なんでもアリと思いますが、一例です。
Private Sub cmdCommand_Click()
   Call subSample
以下略

Public Sub subSample()
Dim frmSample As Form
        Select Case Int(Rnd(1)*5)+1    
          Case 1
            Set frmSample = New Form1
          Case 2
            Set frmSample = New Form2

        End Select
        frmSample.Show vbModal

   frmSample = Nothing
Exit Sub

編集 削除
魔鬼  2004-01-14 15:51:53  No: 111284  IP: [192.*.*.*]

こんなわがままな質問に答えていただいてどうもありがとうございました!また色々とおねがいすることになるかもしれませんがよろしくお願いします。

編集 削除
kana  2004-01-14 15:52:56  No: 111285  IP: [192.*.*.*]

送信を押してないのに投稿されてしまいました。
乱数箇所は一度変数に格納してから、比較しないといけませんね。

Dim intR As Integer
intR = Int(Rnd(1)*5)+1    
        Select Case intR

編集 削除