ループ文(for、Do)を使ってみようループ文とは、文字通り処理を繰り返す構文です。
■ この章で学ぶこと |
以下のコードを記入して、実行してみてください。
Sub For文()
For i = 1 To 100
Cells(i, 1) = i * 10
Next
End Sub
|
For i = 1 to 100 〜 ○○○ 〜 Next
「i」という変数を1から100まで繰り返しなさいという意味です。この間、処理○○○を繰り返します。
Cells(i、1)
いままではセルの指定はRangeオブジェクトで行っていましたが、Cellsオブジェクトも覚えましょう。
Rangeオブジェクトでは”A1”のように場所の指定が初心者には理解しやすいのですが、
上記のコードのようにループ文を使用したり、分岐処理を利用したりする場合には何かと不便です。
Cells(a,b)で”a列b行目”となります。感覚的に、行列反対のような気がしますが慣れてください。
コードの解説
要するにここでは、セル1行目から100行目まで順番に(行数x10)を入力しなさいという物です。
一度、Cellsの()内の数字や、for文の数字を変更して意味を理解してください。
次は、If文の違うバージョンを試してみましょう。
for文だと、最初から何回と指示しておく必要があり、○○になったらやめてという指示をしたい時に不便です。
このような時にDo〜While文を用いて対応します。以下のコードを入力して、実行してみてください。
Sub Do_While文()
For i = 2 To 1000 Step 2
Cells(i / 2, 1) = i * 10
Next
j = 1
Do
If Cells(j, 1) = 500 Then
Cells(j, 1).Interior.ColorIndex = 3
End If
j = j + 1
Loop While j <= 750
End Sub
|
全体解説
前半3行は「For〜Nextで処理を繰り返そう」の改良です。ここで、セルに数値を入力しています。
後半でセルに500が入力された箇所を探し出してセルの色を変更しています。
For i=2 to 1000 Step2
Stepというのは○ごとに加算していくという意味で、ここでは2飛ばしに数値を加算していきます。
すなわち、2,4,6,8・・・996,998,1000となります。
Do ○○○ Loop While △△△
条件が△△△になるまで、○○○の処理を繰り返します。
ループ文が使えるようになると、分岐処理と組み合わせて簡単なマクロは組めるようになると思います。