第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
実行画面例
では、これを発展させて
残りの部分も答えられるようにしてみましょう。
2乗の和とは
の意味です。
解答例は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
の範囲内になってしまうからです。整数型同士の計算結果も整数型になるからです。
さらに、改良して
も計算できるようにしましょう。例えば、はじめの数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などです。)
実行画面例
さて、皆さん全体を考えるのは、2次元ループを学んでからですが、
ダウンロード用ファイル成績一覧表拡大版の
国語、社会、数学、理科、英語の合計・平均をFor文で実現してみましょう。
第2話へ 第4話へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
数学研究室に戻る