No.4ベストアンサー
- 回答日時:
野生の勘で、1~10の整数がばらばらの順番に、重複せずに出てくれば良いものと考えます。
1. まず、要素数10の配列を定義して、1~10までの整数を順番に格納します。配列の名前を、仮にAとします。
2. Rondomizeで初期化します。
3. 次に乱数を2つ発生させます。乱数は1~10の範囲に収まるようにします。個々で発生した乱数を仮にm,nとします。
4. Aのm番目の要素の値と、n番目の要素の値を入れ替えます。
5. 3.と4.を気が済むまで(100回ぐらい?)繰り返します。
6. 配列Aを1番目の要素から順番に読むと、適当に乱れた数字が重複無く取り出せると思います。
こんな感じでいかがでしょうか?
この回答へのお礼
お礼日時:2004/12/09 12:33
ありがとうございます。
単純な構文のみでは、重複しない乱数整数は発生しないということが解りました。
何か一工夫しなければならないという事なんですね。
No.5
- 回答日時:
よく伝わりにくかったですが、私も#4さんと同等の結果を予想します。
こんなカンジで出来そうな気はするんですが。。。
(テストしてないので結果は分かりかねます)
Dim A As Integer '行始値
Dim B As Integer '行終値
Dim C As Integer '列
Dim D As Integer '行カウンタ
Dim E As Integer '値格納
Dim F As Integer '重複カウンタ
Dim AA() As Integer '重複チェック格納
A = 1
B = 10
C = 1
Randomize
For D = A To B
ReDim Preserve AA(D)
AA(D) = Int((B - A + 1) * Rnd + A)
'AA(D) = Int(B * Rnd + 1) でも可かと...
If D <> A Then
For F = A To D - 1
If AA(F) = AA(D) Then
AA(D) = Int((B - A + 1) * Rnd + A)
F = A - 1
End If
Next F
End If
E = AA(D)
Cells(D, C) = E
Next D
省略すれば、もっと簡単にもっと早い処理のものも書くことが出来ますが、これを参考に修正してもらえたら幸いです。
また配列を使うのが嫌なのであれば、セルの値から判別してもいいです。
No.3
- 回答日時:
確認ですが、「重複しない」とは、1~10の値が1回ずつ表示されて欲しいという意味ですか。
Randomizeステートメントは引数を省略すればTimer関数の戻り値を使用しますので、上記のようにRandomize単体で使用すれば毎回ランダムな数値が発生するはずです。
No.2
- 回答日時:
別件ですが、Dimの書き方を指摘させてください。
誤: Dim A,B,C,D,E As Integer
正: Dim A as Integer, B As Integer, C as ・・・
前者の書き方ですと、A~DはVariant型になります。
なおVB.NETでは前者の書き方を受け付けるようです。
No.1
- 回答日時:
乱数整数を発生もとはPCの中にランダム数字が書き込まれています
(乱数の数値テーブルがある)
通常の方法でやると同じ物が出てくる可能性があります
そこで TIME(時間を)組み合わせる結構ランダムになりますよ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 乱数の表示 4 2022/10/12 10:43
- Visual Basic(VBA) VBA 変数が思うように機能しません。ご教授願います。 7 2022/08/14 13:50
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで大量のファイルをシート名...
-
Vba 実数および実数タイプの変...
-
エクセルVBAについて
-
ユーザーフォームに別シートか...
-
VB.net(VB)で、フォームにExcel...
-
Excelのマクロについて教えてく...
-
エクセルの合計を自動で表示さ...
-
Excelのマクロでワードのテキス...
-
VBAの計算で@が出てしまう件
-
VBA listBoxから
-
エクセルのマクロについて教え...
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
左右の表のキー位置を合わせたい
-
VBAの質問になります メッセー...
-
Excel マクロについての相談
-
VBA レジストリの値の読み方に...
-
2つのマクロでチェックボックス...
-
Vba SelStart、SelLen教えてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NET の配列の要素数
-
配列の要素番号を取得するには?
-
VBでボタンを押すと画像をラン...
-
重複しない乱数整数を発生させる。
-
変な質問ですみません、n番目の...
-
DataGridでCTRLキーを押さずに...
-
複数の変数宣言を、for文で一気...
-
VB6 複数行のテキストをリスト...
-
ランダムに数字を並び変える方法は
-
Vba 配列の中の特定文字列の位...
-
IDの自動採番について
-
[Objective-c]多次元配列のアク...
-
Flashでお絵描きアプリを作って...
-
ランダムに6つの数字を選びその...
-
【ActionScript】配列の昇順降...
-
画像をランダムに表示するには
-
【数字ランダム】計算問題ラン...
-
FlashソフトSuzukaで、トランプ...
-
ランダム表示を重複させないよ...
-
Flashでランダムクイズゲームを...
おすすめ情報