4、VBAによるマクロの作成(基礎編)

4−7、繰り返し処理(1)


繰り返し処理(1)

同じような処理を何回も続けて行う場合、その回数分だけコードを記述するのは得策とはいえません。2、3回ならその分コードを書いてもそんなに手間はかかりませんが、処理回数が100回とかになると、同じ記述を100回も書くのはさすがに面倒です。そこで、便利なのが繰り返し命令です。
ここでは、繰り返す回数が決まっている場合の記述のしかたを説明します。

例7)
まず、簡単な繰り返し命令を実行してみます。
ワークシートを5枚追加するというマクロを作成します。

Sub Example7()
  
For Maisuu = 1 To 5
    Worksheets.Add
  
Next
End Sub

記述後、「マクロの実行」から「Example7」を実行してください。

【このコードの解説】

For Maisuu = 1 To 5
  
Worksheets.Add
Next

日本語にすると・・・
Maisuu」の値がからになるまで
  ワークシートの追加
繰り返しなさい

この命令には繰り返しの回数をカウントするための変数が不可欠になります。変数名は何でもかまいません。上の例の場合は「Maisuu」にあたります。
For」の後にその変数の初期値、続けて「To」の後に繰り返しが終了するときの値を書きます。
Nextで繰り返されるたびに「Maisuu」の値が一つずつ増え、その値が5まで増えると、この繰り返しから抜け出します。

この場合、繰り返しの回数は5回となるので5枚のシートのが追加(Worksheets.Add)されるわけです。

※では、例8でこれを応用させてみましょう。

例8)

※「Example1」〜「Example6」の続きです。

2人目の生徒「佐藤」君の合計点を計算します。

Sub Example8()
  
Dim Keisan As Integer
  Keisan = 0
  Worksheets("Sheet1").Select
  
For n = 2 To 4
    Tensuu = Cells(3,n).Value
    Keisan = Keisan + Tensuu
  
Next
  
Range("E3") = Keisan
End Sub

記述後、「マクロの実行」から「Example8」を実行してください。

【このコードの解説】

Dim Keisan As Integer
Keisan = 0

For n = 2 To 4
  Tensuu = Cells(3,n).Value
  Keisan = Keisan + Tensuu
Next

この場合の繰り返しをカウントする変数は「n」です。
この「n」が2から始まり、繰り返されるたびに一つずつ増え、4になったら繰り返しをやめます。

具体的には・・・
1回目
nの値は2なので、セル(3,)、つまりB3の値(国語の点数)を取得し、変数「Tensuu」に格納。
1回り目の変数「Keisan」の値(0)と今格納された「Tensuu」の値を足して「Keisan」に入れ直します。(国語の点数が格納されます。)
nの値が1つ増え、繰り返し。

2回目
nの値は3なので、セル(3,
)、つまりC3の値(数学の点数)を取得し、変数「Tensuu」に格納。
1回り目で新たに格納された変数「Keisan」の値と今格納された「Tensuu」の値を足して「Keisan」に入れ直します。(国語と数学が足されたことになります。)
nの値が1つ増え、繰り返し。

3回目
nの値は4なので、セル(3,
)、つまりD3の値(英語の点数)を取得し、変数「Tensuu」に格納。
2回り目で新たに格納された変数「Keisan」の値と今格納された「Tensuu」の値を足して「Keisan」に入れ直します。(国語、数学、英語の点数が足されたことになります。)
nの値は4で、終了の条件を満たしているので、繰り返しを終了します。

+α講座

For n = 1 To 10 Step 2
  
(繰り返しを行う処理)
Next

「Step」の部分で増え幅を設定します。