第9講 社員が自分に命令することを繰り返す(プロシージャの再帰的使用)
第5話 社員が自分に命令を繰り返すことによる等差数列の和


vba
初項・末項・交差を入力して実行ボタンを押すと、
入門
等差数列の和が求められるマクロ解答例
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

頭が混乱します。
引数が3つです。
気をつけてほしい点は、末項bから始めることです。
今回は遡及の末たどり着いてた結末は初項だったのです。

さて、次の課題です。
n!=1×2×3×・・・×n
を計算させるマクロを組んでください。
マクロは
vb
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 = a
End Function
を改良しましょう。



第4話へ 第6話へ

トップ

vc++講義へ

初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義へ
VB講義基礎へ
初心者のためのJava 入門 基礎から応用まで
数学研究室に戻る