第9講 社員が自分に命令することを繰り返す(プロシージャの再帰的使用)
第6話 社員が自分に命令を繰り返すことによる階乗の計算
シート
プログラムの文章
Private Sub CommandButton1_Click()
Dim a As Integer, b As Integer, c As Integer
a = Cells(5, 2)
Cells(6, 1) = f(a)
End Sub
Private Sub CommandButton2_Click()
Rows("6:200").Select
Selection.ClearContents
Cells(5, 2).Select
Selection.ClearContents
Cells(1, 1).Select
End Sub
Function f(a As Integer)
If a - 1 >= 0 Then f = a * f(a - 1) Else f = 1
End Function
実行結果
では次の課題です。
前に作った等差数列の和を改良して、
初項から真っ向までの積を求めるマクロを組んでください。
初項・末項・交差を入力して実行ボタンを押すと、
等差数列の和が求められるマクロ解答例
Private Sub CommandButton1_Click()
Dim a As Integer, b As Integer, c As Integer
a = Cells(5, 2)
b = Cells(5, 4)
c = Cells(5, 6)
Cells(6, 1) = "等差数列の和"
Cells(7, 1) = f(a, b, c)
End Sub
Private Sub CommandButton2_Click()
Rows("6:200").Select
Selection.ClearContents
Cells(5, 2).Select
Selection.ClearContents
Cells(5, 4).Select
Selection.ClearContents
Cells(5, 6).Select
Selection.ClearContents
Cells(1, 1).Select
End Sub
Function f(a As Integer, b As Integer, c As Integer)
If b - c >= a Then f = b + f(a, b - c, c) Else f = a
End Function
第5話へ 第7話へ
vc++講義へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義へ
VB講義基礎へ
初心者のためのJava 入門 基礎から応用まで
数学研究室に戻る