dポイントプレゼントキャンペーン実施中!

vbaについて

F5からL20までのセルにランダムに1~20の数字を入れたいです。

省略できるところは省略した、
簡潔なプログラムを教えてほしいです。

お願いします・・・;;

A 回答 (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
    • good
    • 1

表現が曖昧になっちゃってる。



解釈は、少なくとも 2つ。

1) 1から20 の乱数は、整数と書いてないから小数も OK

2) 1から20 は、整数だけど、F5 から L20 に全部数字を入れるのではなくて、ランダムにセルを選んで 20個いれる。
    • good
    • 0

セルの数が20を越えるので、1~20を重複無しに入れるのは無理です。

    • good
    • 0

どうぞ。



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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!