第4回VBA学習では繰り返し処理を学びました。
そこでは1回だけの繰り返し処理を記述するだけでしたが、他にもネストというやり方もあります。
簡単にいうと繰り返し処理の中に繰り返し処理を書くことができるという意味です。
言葉だけでは分かりにくいと思いますので、今回は九九の表を作成していきたいと思います。
九九の表を作る
九九の表を作るための条件を定義します。
計算範囲は1〜9までとします。
列から計算するパターンと行から計算するパターンの両方にチャレンジしてみましょう。
必ずステップ機能を使用して動きを確認してください。
ステップ機能を忘れてしまった人はこちらの記事を確認してください。
では、作成してみましょう!
例文は最後に確認するようにしてください。
ForNext文の例
Sub ForNext_EX1()
Dim i As Long, j As Long
For i = 1 To 9
For j = 1 To 9
Cells( i , j ).Value = i * j
Next j
Next i
End Sub
Sub ForNext_EX2()
Dim i As Long, j As Long
For i = 1 To 9
For j = 1 To 9
Cells( j , i ).Value = i * j
Next j
Next i
End Sub
DoLoop文の例
Sub DoLoop_EX1()
Dim i As Long, j As Long
i = 1
j = 1
Do While i <= 9
Do Until j > 9
Cells( i , j ).Value = i * j
j = j + 1
Loop
i = i + 1
j = 1
Loop
End Sub
Sub DoLoop_EX2()
Dim i As Long, j As Long
i = 1
j = 1
Do
Do
Cells( i , j ).Value = i * j
j = j + 1
If j = 10 Then
j = 1
Exit Do
End If
Loop
i = i + 1
If i = 10 Then Exit Do
Loop
End Sub
まとめ
DoLoop文の例文では、1回目と2回目の処理を別の処理にしています。
また、細かいところで記述を変えているので参考にしてください。
実務では統一した方が可読性が良くなり保守しやすいので、練習以外では統一して記述しましょう。
何度も言いますが、僕はForNext文を使います。
まずはForNext文を確実に使えるようにしましょう!
次回はこれまでさりげなく使っていた「変数」について学習します。