プロが教えるわが家の防犯対策術!

こんにちは、いつもお世話になっています。
今回、セルに符号がランダムで、絶対値が同じ数を足していきたいのですが、思うようにいきません。
(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

回答よろしくお願いします。(> <)"

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/06/01 23:36

>今回、セルに符号がランダムで、絶対値が同じ数を足していきたいのですが、思うようにいきません。

(5→0→0→-5→-10→-15・・・)

足した結果を入れる変数が見当たりません。
Cells(dt, 1) = a + diは毎回変わりますので、20行分(A1からA20)のセルに数字が出力されます。その結果を足すことですか?

やりたいことがわかりません。
どううまくいかないのか、どうあるべきなのか、具体例を提示してみてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/06/01 23:39

aの値は常に0なので乱数の結果diがセルに入るだけです。



aの変数は何のために用意したのですか?

a = a + di
Cells(dt, 1) = a
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/06/01 23:41

ちょっとやりたいことがいまいち理解できません。



元の値(0?)に
足す値(この場合5)の符号をランダムにして足していくだけでしょうか?

つまり
0+5→5
+5→10
+5→15
-5→10
-5→5

こんな感じでしょうか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/06/01 23:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!