• ベストアンサー

重複しない乱数

vbaについて F5からL20までのセルにランダムに1~20の数字を入れたいです。 省略できるところは省略した、 簡潔なプログラムを教えてほしいです。 お願いします・・・;;

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

>重複しない乱数 各列でって事なら 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

関連するQ&A