ギリギリ行けるお一人様のライン

ビジュアルベーシックのプログラミングについて質問があります。
Dim j, answer As Short
answer = 1
For j = 2 To 4
answer = answer * j
Next
Label1.Text = Str(j)
Label2.Text = Str(answer)

この文を実行してみたところ、ラベル1に5、ラベル2に24という値が出てきました。この際、jというのはどういった働きをしている変数ですか?また、answer = answer * jという式はどうやって計算したら24なんていう数値が出てくるのでしょうか。answer = 1とされているのによくわかりません。馬鹿でほんとすいません。教えてくださる方、お願いします。

質問者からの補足コメント

  • 度々すみません。コードの実行順序も正確にわからないのでできれば教えてください。質問が多くて申し訳ないです。

      補足日時:2017/06/25 17:04

A 回答 (3件)

No2です。

お~っと
Sub ボタン1_Click()
answer = 1
For j = 2 To 4
answer = answer * j
Range("A" & j).Value = j
Range("B" & j).Value = answer
Next
End Sub
でしたね。
    • good
    • 0

For ~Nextは繰り返しです。


http://excelvba.pc-users.net/fol6/6_3.html
が参考になるかと思います。
一例ですが
別途、標準モジュールに
Sub ボタン1_Click()
answer = 1
For j = 2 To 4
answer = answer * j
Range("A" & i).Value = i
Range("B" & i).Value = answer
Next
End Sub
を作って、試してみれば如何でしょうか。
    • good
    • 0

分かりやすいように


answer * j=answer  と 考える
一回目  answer の1 * jの2 で answerは 2 になる
NEXT で J と 4を比較する、4より小さいから FORに 戻る
次 2*3=6 NEXT
次 6*4=24 NEXT
次 NEXT J=5 で 4より 大きいので 抜ける(戻らない)
よって Label1.Text = Str(j) は 5
Label2.Text = Str(answer)は 6*4の 24
    • good
    • 0

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


おすすめ情報