ID非公開

2021/12/5 7:25

22回答

ExcelのVBAの課題があり、2、4、6、8、10のどれかランダムに結果が得られるプログラムを作成せよというものがありますが、どうしてもやり方がわかりません。教えてください。

Excel71閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

0

ID非公開

質問者2021/12/5 9:02

それを考えてInt(Rnd * 5)×2でやろうとしても0、2、4、6、8が表示されてしまいます

その他の回答(1件)

0

結果をどう表示するか指示がないの? MsgBoxで簡単にするなら Sub test1() MsgBox WorksheetFunction.RandBetween(1, 5) * 2 End Sub

乱数発生のばらつき度を表示するならA列に10000行ほど乱数を発生させて率を計算、 Sub test2() Dim i As Long, Rd As Variant Rd = Array(0, 0.2, 0.4, 0.6, 0.8) Randomize For i = 1 To 10000 Cells(i, 1) = 2 * Application.Match(Rnd, Rd) Next Cells(1, 3) = "乱数": Cells(1, 4) = "出現率" For i = 2 To 6 Cells(i, 3) = i * 2 - 2 Cells(i, 4) = WorksheetFunction.CountIf(Columns(1), Cells(i, 3)) / 10000 Cells(i, 4).NumberFormat = "0.00%" Next End Sub