第3講 For文の学習

第3話 For文による1から与えられた数までの和

第2話問題解答例
Private Sub CommandButton1_Click()
Dim w As Integer, i As Integer, n As Integer

  n = Cells(2, 6)

  w = 0
  For i = 1 To n
     w = w + i
  Next

  Cells(5, 5) = w

End Sub
実行画面例
d1
では、これを発展させて
d2
残りの部分も答えられるようにしてみましょう。
2乗の和とは
d3
の意味です。
解答例は30行下。
Private Sub CommandButton1_Click()
  Dim w As Long, i As
Long, n As Integer 'iの4乗の計算があるのでiも長整数型変数にしておく。

  n = Cells(2, 6)

  w = 0
    For i = 1 To n
    w = w + i
  Next
  Cells(5, 5) = w

  '2乗の和
  w = 0
  For i = 1 To n
    w = w + i * i
  Next
  Cells(6, 5) = w
 
  '3乗の和
  w = 0
  For i = 1 To n
    w = w + i * i * i
  Next
  Cells(7, 5) = w

  '4乗の和
  w = 0
  For i = 1 To n
    w = w + i * i * i * i
  Next
  Cells(8, 5) = w

End Sub

Private Sub CommandButton2_Click()

  Range("F2,E5:E100").Select 'F2とE5〜E100までの選択
  Selection.ClearContents
  Cells(1, 1).Select

End Sub

皆さん、wの方は多分長整数型にしましたよね。実は,iも長整数型にしないとだめです。
これは、 整数型にするとi * i * i * iの計算結果も整数型の-32,768 〜 32,767
の範囲内になってしまうからです。整数型同士の計算結果も整数型になるからです。

さらに、改良して
d4
も計算できるようにしましょう。例えば、はじめの数5、終わりの数14,変化の幅なら
はじめの数から終わりの数までの和とは、
5+8+11+14の計算結果を意味します。
3飛びに変化させるときは、
For i=1 To 14 Step 3
     ・
     ・ 
     ・
Next
とします。For i=1 To 14 Step 3の意味は、1から14まで3飛びに変化させなさいの意味です。

コード例は30行下。























コード例
Private Sub CommandButton1_Click()
  Dim w As Long, i As Long, はじめの数 As Integer, 終わりの数 As Integer, 変化の幅 As Integer


  はじめの数 = Cells(1, 6)
  終わりの数 = Cells(2, 6)
  変化の幅 = Cells(3, 6)

  w = 0
  For i = はじめの数 To 終わりの数 Step 変化の幅
    w = w + i
  Next
  Cells(5, 5) = w

  w = 0
  For i = はじめの数 To 終わりの数 Step 変化の幅
    w = w + i * i
  Next
  Cells(6, 5) = w

  w = 0
  For i = はじめの数 To 終わりの数 Step 変化の幅
    w = w + i * i * i
  Next
  Cells(7, 5) = w

  w = 0
  For i = はじめの数 To 終わりの数 Step 変化の幅
    w = w + i * i * i * i
  Next
  Cells(8, 5) = w

End Sub
(今回は、変数名に漢字を使用している。VBAはありがたいことに、変数名に漢字を使うことが出来ます。
ただし、私が知っている範囲ではVBA以外では全角文字は使えません。
私が知っているのはC言語、C++、VC++、VB、パスカル、QBなどです。)
実行画面例
d5    

さて、皆さん全体を考えるのは、2次元ループを学んでからですが、
ダウンロード用ファイル成績一覧表拡大版
国語、社会、数学、理科、英語の合計・平均をFor文で実現してみましょう。


第2話へ 第4話へ

004


vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ

数学研究室に戻る