- ベストアンサー
重複しない乱数
vbaについて F5からL20までのセルにランダムに1~20の数字を入れたいです。 省略できるところは省略した、 簡潔なプログラムを教えてほしいです。 お願いします・・・;;
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>重複しない乱数 各列でって事なら Sub Test() Dim i As Long, j As Long, 乱数 As Long Dim v(1 To 20) As Boolean Randomize For i = 6 To 12 For j = 5 To 20 Do 乱数 = Int((Rnd * 20) + 1) Loop While v(乱数) v(乱数) = True Cells(j, i).Value = 乱数 Next j Erase v Next i End Sub
その他の回答 (3)
- dscripty
- ベストアンサー率51% (166/325)
回答No.4
表現が曖昧になっちゃってる。 解釈は、少なくとも 2つ。 1) 1から20 の乱数は、整数と書いてないから小数も OK 2) 1から20 は、整数だけど、F5 から L20 に全部数字を入れるのではなくて、ランダムにセルを選んで 20個いれる。
- kmee
- ベストアンサー率55% (1857/3366)
回答No.2
セルの数が20を越えるので、1~20を重複無しに入れるのは無理です。
- tsubuyuki
- ベストアンサー率45% (699/1545)
回答No.1
どうぞ。 Sub MakeRandInt() Dim i As Integer, j As Integer For i = 5 To 20 For j = 6 To 12 Cells(i, j).Value = Int(Rnd() * 20 + 1) Next j Next i End Sub