第4回 VBA 補足事項 〜ネスト構造〜

プログラミング

第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文を確実に使えるようにしましょう!

次回はこれまでさりげなく使っていた「変数」について学習します。