Excel VBA


反復処理

繰り返し処理を行ないます。

For : 範囲指定繰り返し

まずは、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(条件式)条件式が偽のとき真
のように複数の条件式を組み合わせることが可能となります。

結び

今回扱ったものでも使い方次第ではずいぶん楽が出来ます。
次は条件分岐を扱います。これを組み合わせると、便利になります。
使用法はあなた次第です。


戻る