' 変数宣言 Dim tmpIndex As Long ' ランダム数値の一時保存用 Dim I As Long ' ループカウント用 Dim RndCheck As Collection ' ランダム重複チェック用 Dim RndNumber() as Long ' ランダム数値の取得用 Dim ErrCheck As Long ' エラーチェック用 ' 重複しないランダムな数値の取得数を設定 ' この数値を変更する事で任意の数の重複しないランダムな数値が取得できます。 Const tmpCountSet As Long = 100 ' ランダム数値の重複チェック用にコレクションオブジェクトを使用。 Set RndCheck = New Collection ' ランダム生成ジェネレーターを「1」で初期化 ' (Rnd関数で使用するランダム生成ジェネレーターを初期化しています) ' この数値は任意の数値を指定できます。 ' この処理を実行するたびに同一の数値を取得したい時は、Randomizeステートメントの前に ' Rnd -1 を実行してください。 Randomize 1 ' ランダムな数値の保存用配列をtmpCountSet個に再設定します。 ReDim RndNumber(1 To tmpCountSet) ' 1 から tmpCountSet までの重複しないランダムな数値を取得します。 For I = 1 To tmpCountSet Do tmpIndex = (Rnd * tmpCountSet) + 1 On Error Resume Next RndCheck.Add tmpIndex, CStr(tmpIndex) ' キーには文字列を指定する ErrCheck = Err.Number On Error GoTo 0 ' 重複した数値がRndCheckに設定された時は ' エラーナンバー「457」がErrCheckに設定されます。 If ErrCheck = 0 Then RndNumber(I) = tmpIndex ' 重複しない数値として設定 Exit Do End If Loop Next I ' ランダムチェック用に移用したコレクションオブジェクトを初期化します。 Set RndCheck = Nothing VisualBasic Help参照ポイント。 Collection オブジェクト Rnd関数 Randomizeステートメント 以上の処理で、重複しない数値をランダムに取得する事が出来ます。 参考にして頂ければ幸いです。 上記の処理は、詳細は異なりますが、スライドでSHOWで使用している処理です。 ランダムにファイルを取得する時は、ファイルリストボックス又はリストボックスを使用して、Object名.List(Index)でファイル名を取得します。 |
Copyright(C) 1999-2000 スタジオ T-MAN MailTo:t-man@mx4.ttcn.ne.jp |