ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

EXCEL VBAコミュの質問でっす

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。最近VBAを勉強し始めて苦戦している者です。

RangeA1:A10のセルを使って以下のようなプログラムを作成したいのですが、全くうまくいきません。
<プログラム>
1以上10以下の数字をランダムに発生させ、1が出たらCells(1,1)にプラス1し、2が出たらCells(2,1)にプラス1し・・・
といった具合にしていき、最終的にRangeA1:A10のどこかのセルの数字が最初に30に到達したらループを抜ける。

一応下にショボショボのコードを載せてみました。
多分全く違うと思いますが・・・
どなたかご教授くださいm(__)mお願いします。

Sub 題名()
Dim x As Long
Do Until Range("A1") Or Range("A2") Or Range("A3") Or Range("A4") Or Range("A5") Or Range("A6") Or Range("A7") Or Range("A8") Or Range("A9") Or Range("A10") = 30
x = Int(Rnd() * 10) + 1
If x = 1 Then Range("A1") = Range("A1").Value + 1
If x = 2 Then Range("A2") = Range("A2").Value + 1
If x = 3 Then Range("A3") = Range("A3").Value + 1
If x = 4 Then Range("A4") = Range("A4").Value + 1
If x = 5 Then Range("A5") = Range("A5").Value + 1
If x = 6 Then Range("A6") = Range("A6").Value + 1
If x = 7 Then Range("A7") = Range("A7").Value + 1
If x = 8 Then Range("A8") = Range("A8").Value + 1
If x = 9 Then Range("A9") = Range("A9").Value + 1
If x = 10 Then Range("A10") = Range("A10").Value + 1
End If
Loop
End Sub

コメント(12)

CELLSの第一引数にランダム値を与えて
そのVALUEに1加算
直後に30になったか判定
なるまで上記をループ
でいいと思うけど
携帯からなのでコード書けないけど
>CCS−ありすさん
迅速なレスありがとうございます!!!
早速やってみたらうまくいきました。
助かりました。
まだまだかなり未熟者ですが頑張ります。

>超不死身さん
少し自分で考えて見ます。
引数は習いたてです。。。
>キヨシさん
すごいすっきり・・・
まだまだ修業します。。。
どうもです。

>CCS−ありすさん
いえいえとんでもないです。。。
素早く返していただいたおかげでスグにもやもやがとれましたから。
もう少しいろいろ考えて見ます!
ありがとうございます
そして自宅から・・・

キヨシさん
そんな感じです。はい
cells().valueが欲しいですけどね

ほんけーさん
引数マスターに向けてがんばってください
プログラミングの基本です。
キヨシさんのは後判定なので、こんな感じかと。
Sub t()
  Dim x As Long

  Do
    x = Int(Rnd() * 10) + 1
    Cells(x, 1).Value = Cells(x, 1).Value + 1
  Loop Until Cells(x, 1).Value >= 30
End Sub
>超不死身さん
が、がんばります

>jimaさん
やはり引数が大事みたいですね。。。
がんばります。

>ビリーさん
うーむ。。。なるほどです。
色々やり方があって面白いですね。
修行します。。。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

EXCEL VBA 更新情報

EXCEL VBAのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。