• 締切済み

繰り返しの足し算

こんにちは、いつもお世話になっています。 今回、セルに符号がランダムで、絶対値が同じ数を足していきたいのですが、思うようにいきません。 (5→0→0→-5→-10→-15・・・) 何が悪いのでしょうか・・・? Sub ランダムの足し算() Cells.Clear a = 0 For dt = 1 To 20 Cells(dt, 1) = a + di '足していきたいのに、足せない? di = Int(rnd - 0.5) * 5 'これが足す数です。 If di = 0 Then di = di + 5 End If Next End Sub 回答よろしくお願いします。(> <)"

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

やりたいことが良くわかりませんが、 選ばれた数をA列に その都度足した数をB列に表示するなら こんな感じでいいんじゃないかと思います。 Sub ランダムの足し算() Cells.Clear a = 0 For dt = 1 To 20 di = Int(Rnd - 0.5) * 5 'これが足す数です。 If di = 0 Then di = di + 5 End If Cells(dt, 1) = di a = a + di Cells(dt, 2) = a Next End Sub

nanakokko
質問者

お礼

そうそう! こんなかんじです!! ありがとうございます!!( ^ー^)σ"

  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.3

>今回、セルに符号がランダムで、絶対値が同じ数を足していきたいのですが、思うようにいきません。(5→0→0→-5→-10→-15・・・) 足した結果を入れる変数が見当たりません。 Cells(dt, 1) = a + diは毎回変わりますので、20行分(A1からA20)のセルに数字が出力されます。その結果を足すことですか? やりたいことがわかりません。 どううまくいかないのか、どうあるべきなのか、具体例を提示してみてください。

nanakokko
質問者

お礼

すみません、ご指摘の通りです。 文章力なくて、自分。 (>_<)・・・ その通りですよね、次からはもっと判りやすい文章で質問します。 ご協力、本当にありがとうございます(^o^)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

aの値は常に0なので乱数の結果diがセルに入るだけです。 aの変数は何のために用意したのですか? a = a + di Cells(dt, 1) = a

nanakokko
質問者

お礼

そうですよね、aは邪魔ですね、 多分、使おうと思って消去し忘れたのかと・・・ ごめんなさい!! もっと勉強して、hanahanaさんのように、プログラムが読めるようにしたいです!(>_<)!!

  • lasichi
  • ベストアンサー率31% (122/389)
回答No.1

ちょっとやりたいことがいまいち理解できません。。 元の値(0?)に 足す値(この場合5)の符号をランダムにして足していくだけでしょうか? つまり 0+5→5 +5→10 +5→15 -5→10 -5→5 こんな感じでしょうか?

nanakokko
質問者

お礼

はい!! その通りでございます!!( ^ー^) おかげで解決できました! ありがとうございます(・o・)"

関連するQ&A