• ベストアンサー

エクセルVBAでこのプログラムの作るには

最近エクセルVBAを勉強し始めた初心者です。 エクセル上でコマンンドボタン1つでD4に1~75の乱数を発生させて次にE4に乱数を発生させる。 D4+E4が120以上なら終了で、そうでなければF4に乱数を発生させてD4+E4+F4が120以上なら終了で、そうでなければG4に乱数を発生させてD4+E4+F4+G4が120以上なら終了で、そうでなければH4に乱数を・・・の繰り返し。(最大、L4まで繰り返す) 表示される数字はD4~L4まで同時ではなく1つずつタイムラグがある感じで表示させたいです。 このプログラムを組みたいのですがどのようにすればよろしいでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • tom11
  • ベストアンサー率53% (134/251)
回答No.1

Public Sub f() Dim i As Integer Dim t As Integer Dim r As Integer Cells.Clear For i = 1 To 9 r = Int(Rnd() * 75 + 1) t = t + r Application.Wait (Now + TimeValue("00:00:01")) Range("d4").Cells(1, i).Value = r If t > 120 Then MsgBox "終了" Exit Sub End If Next End Sub こんな感じでどうでしょう。

shorinji36
質問者

お礼

回答有難うございます、大変助かりました。

その他の回答 (1)

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.2

Sub rndxx() Dim i As Integer Dim s As Integer Randomize i = 4 Range(Cells(4, 4), Cells(4, 12)).ClearContents While s <= 120 And i <= 12   Cells(4, i) = Int(Rnd * 75 + 1)   s = s + Cells(4, i)   i = i + 1 Wend End Sub 横に進むので添え字が使いやすいようrange("D4")では無くcells4,4)という形式にしました。

shorinji36
質問者

お礼

回答有難うございます、助かりました。

関連するQ&A

専門家に質問してみよう