- 締切済み
繰り返しの足し算
こんにちは、いつもお世話になっています。 今回、セルに符号がランダムで、絶対値が同じ数を足していきたいのですが、思うようにいきません。 (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 回答よろしくお願いします。(> <)"
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
やりたいことが良くわかりませんが、 選ばれた数を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
- ipsum11
- ベストアンサー率21% (55/251)
>今回、セルに符号がランダムで、絶対値が同じ数を足していきたいのですが、思うようにいきません。(5→0→0→-5→-10→-15・・・) 足した結果を入れる変数が見当たりません。 Cells(dt, 1) = a + diは毎回変わりますので、20行分(A1からA20)のセルに数字が出力されます。その結果を足すことですか? やりたいことがわかりません。 どううまくいかないのか、どうあるべきなのか、具体例を提示してみてください。
お礼
すみません、ご指摘の通りです。 文章力なくて、自分。 (>_<)・・・ その通りですよね、次からはもっと判りやすい文章で質問します。 ご協力、本当にありがとうございます(^o^)
- hana-hana3
- ベストアンサー率31% (4940/15541)
aの値は常に0なので乱数の結果diがセルに入るだけです。 aの変数は何のために用意したのですか? a = a + di Cells(dt, 1) = a
お礼
そうですよね、aは邪魔ですね、 多分、使おうと思って消去し忘れたのかと・・・ ごめんなさい!! もっと勉強して、hanahanaさんのように、プログラムが読めるようにしたいです!(>_<)!!
- lasichi
- ベストアンサー率31% (122/389)
ちょっとやりたいことがいまいち理解できません。。 元の値(0?)に 足す値(この場合5)の符号をランダムにして足していくだけでしょうか? つまり 0+5→5 +5→10 +5→15 -5→10 -5→5 こんな感じでしょうか?
お礼
はい!! その通りでございます!!( ^ー^) おかげで解決できました! ありがとうございます(・o・)"
お礼
そうそう! こんなかんじです!! ありがとうございます!!( ^ー^)σ"