• ベストアンサー
  • すぐに回答を!

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

  • 質問No.5404576
  • 閲覧数36
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 83% (1150/1380)

最近エクセル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つずつタイムラグがある感じで表示させたいです。

このプログラムを組みたいのですがどのようにすればよろしいでしょうか?

よろしくお願いします。

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 53% (134/251)

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

お礼率 83% (1150/1380)

回答有難うございます、大変助かりました。
投稿日時:2009/10/29 21:37

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 36% (97/264)

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

お礼率 83% (1150/1380)

回答有難うございます、助かりました。
投稿日時:2009/10/29 21:38
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ