Access VBA 指定した回数だけ処理を繰り返す方法。

VBA には、指定した回数だけ、処理を繰り返す For Next というステートメントが用意されています。

処理を繰り返すためのステートメントは、他にもいくつかありますが、For Next は、繰り返す回数が明確な場合によく使われます。

今回作るプログラムは、後にブレークポイントと、デバッグツールバーの学習用にも使います。


【1】Access で VBEを起動します。

access-vba-109.gif

*VBEは「Altキー」+「F11キー」で起動できます。


【2】新たに「test4」という標準モジュールを作成して、以下のように 2つのプロシージャを定義します。


Function total(a As Integer, b As Integer) As Integer
  Dim sum As Integer

  For i = a To b Step 1
    sum = sum + i
  Next i

  total = sum
End Function



Sub main()
  Debug.Print "合計:" & total(1, 10)
  Debug.Print "合計:" & total(1, 20)
  Debug.Print "合計:" & total(1, 30)
  Debug.Print "合計:" & total(1, 40)
  Debug.Print "合計:" & total(1, 50)
End Sub


access-vba-110.gif

「Ctrlキー」+「スペースキー」で入力候補を表示したり、コピー貼り付けを使い、できるだけ効率的にプログラムを作成する練習をしてください。


【3】Subプロシージャの main() から、プログラムを実行してください。

・main()の実行結果
access-vba-111.gif


【4】動作を確認したら、イミディエイト ウィンドウをクリアしておきます。

access-vba-112.gif


For Next ステートメント以外の部分は、これまでに何度も出てきているので、難しくないと思います。


【解説】

■main()側

(1)独自に定義した Functionプロシージャを、引数を指定して呼び出し、その戻り値を利用して、イミディエイト ウィンドウに計算結果を表示しています。

Debug.Print "合計:" & total(1, 10)
以下省略

*文字列の結合は「&」アンパサンド


■total()側

(1)For Next ステートメントは指定した回数だけ、処理を繰り返します。

For Next の構文は以下のようになっています。

For counter = start To end [Step step]
[statements]
Next [counter]

・counter カウンタに使う変数を指定
・start カウンタの初期値を指定
・end カウンタの最終値を指定
・step カウンタに加算される値を指定
・statements 繰り返す処理を記述

省略しているものもありますが、以上が For Next ステートメントの基本です。
もっと詳しく知りたい場合は、 Microsoft Visual Basic のヘルプをご覧ください。


(2)上記の構文を踏まえて、独自に定義した total() を見てみましょう。

Function total(a As Integer, b As Integer) As Integer

・totalという名前である
・整数型の a、b 2つの引数を受け取る
・整数型の戻り値を返す


(3)計算結果を保存しておく sum という整数型の変数を用意しています。

Dim sum As Integer

変数 sum は、 For Next ステートメントの外で宣言します。


(4)引数で渡された a がカウンタ i の初期値になり、i が b の値になるまでの回数だけ、sum に i の値をプラスします。つまり a から b までの合計が計算できます。

For i = a To b Step 1
  sum = sum + i
Next i

For Next を1回実行する度に、カウンタの i には Step で指定した値が加算されます。この例では 1 ずつ増えます。


(5)Functionプロシージャの名前に代入した値が戻り値になります。
total = sum


【ワンポイント】
ちょっとわかり難いかもしれませんが、変数 sum に i の値をプラスして、また変数 sum に代入しています。

sum = sum + i

sum が 1 、i が 2 の場合、左辺の sum は 3 になります。

プログラミング言語によって書き方は違いますが、よく使われる方法です。


スポンサードリンク

スポンサードリンク






Access VBA 初心者入門講座 TOPへ