第5講 Subプロシージャ

第6話 複数の引数

素数列挙マクロコード例
Private Sub CommandButton1_Click()

  Dim h As Long, o As Long

  h = Cells(6, 1)
  o = Cells(8, 1)
  f h, o

End Sub


Sub f(h As Long, o As Long)

  Dim cn As Long
  Dim i As Long, j As Long, r As Long
  cn = 0

  For i = h To o
    If i = 2 Then
      Cells(6 + Int(cn / 30), 2 + (cn Mod 30)) = i
      cn = cn + 1
    End If

    If i Mod 2 = 0 Then
      GoTo owari
    End If

    r = Sqr(i)
    For j = 3 To r Step 2
      If i Mod j = 0 Then
      GoTo owari
    End If
  Next

  Cells(6 + Int(cn / 20), 2 + (cn Mod 20)) = i
  cn = cn + 1
owari:
  Next

  Cells(7 + Int(cn / 20), 2) = "素数個数"
  Cells(7 + Int(cn / 20), 3) = cn

End Sub


それでは、例を変えて引数が3つの場合を考えてみましょう。
等差数列の和を求めるマクロを再び考えましょう。

3+5+7+・・・+21
これを計算させるとき、
f 3,19,2
としてプロシージャを呼び出すものとします。
つまり、
f はじめの値,終わりの値 ,変化の幅
です。
p001
実行結果例
p002
では皆さんコードを考えましょう。




第5話へ 第7話へ

004


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

数学研究室に戻る