繰り返し処理を行ないます。
まずは、For〜Next文を使ってみましょう。
構文は、
For カウンタ変数 = 初期値 To 終値 Step 変化量
繰り返し部分
Next カウンタ変数
です。
カウンタ変数は、初期値から終値まで変化量ずつ増減し、これが終値を越えたとき繰り返しは終了します。
Nextの後のカウンタ変数は、カウンタ変数が"自明なとき"は省略できます。
繰り返し文が入れ子構造となっているときは指定するみたいです(構文レベルで分かると思うんだけどなぁ)。
では、早速使ってみましょう。
001 002 003 004 005 006 007 008 009 |
Private Sub CommandButton1_Click() For i = 1 To 10 Cells(i + 1, 1).Value = i Next For i = 1 To 10 Cells(i + 1, 2).Value = 2 ^ i Next End Sub |
実行すると次のように2をi乗した数(i=1から10)が表示されます。
最初のループはiを表示するループ、次のループは2^iを表示するループです。
なお、^はべき乗計算の記号です。
さて、このようにループを使うとコピペよりも早く、柔軟に繰り返しを行うことができます。
今回のレベルだと、まだコピペのほうが楽ですか?
では、次のセクションでは入れ子にしてみましょう。
1列(1行)単位の繰り返しは前節でできるようになりました。
今回は次元を2次元に拡大しましょう。
001 002 003 004 005 006 007 |
Private Sub CommandButton1_Click() For i = 1 To 10 For j = 1 To 10 Cells(i, j).Value = i ^ j Next j Next i End Sub |
普通に縦i, 横jでループして、iのj乗した数を表示します。
これも、手動で出来ますが、計算を複雑にすると、Excelが余計な気を利かせるため、
きっとイライラすると思います。
そんなときにマクロを使うことを検討してください。
Forの他にも繰り返し文はあります。
以下に構文を簡単に示しておきます。
Do While 条件式
繰り返し部分
Loop
1)条件式を満たしている間繰り返す(判断、実行、判断、・・・)
Do Until 条件式
繰り返し部分
Loop
2)条件式を満たすまで繰り返す(判断、実行、判断、・・・)
Do
繰り返し部分
Loop While 条件式
3)条件式を満たしている間繰り返す(実行、判断、実行、・・・)
Do
繰り返し部分
Loop Until 条件式
4)条件式を満たすまで繰り返す(実行、判断、実行、・・・)
条件式は、x > yなどの比較演算子を使った式です。
比較演算子は、
= 等しい
> より大きい
< より小さい
>= 以上
<= 以下
<> 等しくない
があります。
このような比較演算子はPascal形式でしたっけ?
違ったかな
なお、条件式にはAnd, Or, Notの演算子を付与することができます。
つまり、これを用いると
(条件式1)And(条件式2) 条件式1と2の双方を満たしたときのみ真
(条件式1)Or(条件式2) 条件式1と2のどちらかが真のとき真
Not(条件式)条件式が偽のとき真
のように複数の条件式を組み合わせることが可能となります。
今回扱ったものでも使い方次第ではずいぶん楽が出来ます。
次は条件分岐を扱います。これを組み合わせると、便利になります。
使用法はあなた次第です。