• ベストアンサー

VBA

ExcelのVBAについて質問です。 1000以下の任意の整数nを画面入力から読み込んで、1+2+3+4+・・・+nの合計値をセルA1に表示させたいのですが、1とnの和が足されてしまいます。 どこがおかしいのでしょうか? 指摘お願いします。 以下テキストです。 スペースなどは気にせずテキストの部分でご指摘お願いします Sub ()   Dim i As Integer Dim n As Integer n = Application.InputBox(Prompt:="1000以下の整数を入力してください", Type:=1) If n <= 1000 Then For i = 1 To n iResult = i + 1 Cells(1, 1) = iResult Next i End Sub よろしくおねがいします。

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

  • ベストアンサー
  • masa_019
  • ベストアンサー率61% (121/197)
回答No.1

こんにちは。 >iResult = i + 1 ではなくて、 iResult = iResult + i にしましょう。

その他の回答 (2)

  • f272
  • ベストアンサー率46% (8467/18126)
回答No.3

For i = 1 To n iResult = i + 1 Cells(1, 1) = iResult Next i これをfor文を使わないで書いたら iResult = 1 + 1 Cells(1, 1) = iResult iResult = 2 + 1 Cells(1, 1) = iResult iResult = 3 + 1 Cells(1, 1) = iResult (途中省略) iResult = n + 1 Cells(1, 1) = iResult となります。 Cells(1, 1)に代入されるのは当然n + 1ですね。

zenen03
質問者

お礼

3人の方々ありがとうございました。 おかげさまで解決いたしました!

  • hahuuno
  • ベストアンサー率27% (3/11)
回答No.2

あと、 iResultの変数の宣言もしましょう~

関連するQ&A