【VBA】VBAで繰り返し処理してみた?(For文)

繰り返し処理

こんちは😀

今回は、宇宙海賊なしで、VBAの繰り返し処理について紹介します👍

繰り返し処理は、マクロの記録を使ってても、出会うことは無いでしょう。

そうなんです。マクロの記録をしても出てきません🔍

マクロを組みたければ、マクロの記録から少し距離を置いた方がいいと思います⏸or⏹

そして、この繰り返し処理と制御文が絡み合うことで、色んな処理が可能になります。

これは他の言語でも一緒です。アルゴリズム的なものが大事!多分

頑張れば、VBAでもゲーム作れるよ✨

 

Forの繰り返し処理(For~Next)

今回は、For文を紹介しますね。(他にDo文もあります

そして、繰り返し処理には、必ず変数が絡んできます。

以前に紹介した、『何か入れる箱みたいなもの。』です。

完璧に理解してなくていいので、わからない人はサラッと復習。

復習はこちらから↓

VBAで変数使ってみたVBAで変数使ってみた

For文は、ForとNextの間に記述した処理を指定した回数だけ繰り返します🔄

どういうこと?って感じですよね?

一度、以下のコードに目を通してください。

Sub a()
Dim i As Integer
    For i = 1 To 10 Step 1
    'ここに処理を記述します
    Next
End Sub

如何でしょうか?

上記の文だったら、『ここに処理を記述します』を10回繰り返します。

きっと分かりにくいので次に行きましょう♪

 

For文の解説

ここもパッと目を通す感じで大丈夫です👍

変数と数値は例えなので、あまり深く考えないでくださいね。

・構造的なこと

これ、絶対!誰にも言わないでくださいよ。絶対ですよ!実は~🎵

それぞれ赤枠が、どんな役割か分かれば大丈夫です。

・次に実行したときの流れ1(上から順に見てください)

・流れ2(繰り返しから抜ける条件)

 

上図のように処理されます。

まだ、わからないですよね?

 

実際にFor文を記述してみよう

実際にコードを記述して、動作を見た方が早いです。

For文の中に、『jはiがループした分だけiを足すって、コードを入れてみました。

今回も、面倒だと思いますが、手打ちで書いていきましょう!

Sub kurikaesi()
Dim i, j As Integer
    For i = 1 To 10 Step 1
        j = j + i
    Next
    Debug.Print "ループを抜けた時の変数は" & i
    Debug.Print "1から10の合計は" & j
End Sub

記述出来たら実行してみましょう

 

 

画像のような結果になりましたか?

要するに、For~の行でループの条件を満たしているか判断していて、

Nextで変数にStepの数値を代入してるっていうこと。

F5で実行より、F8で1行ずつ実行していくとわかりやすいかも👀

ちなみに、今回のように変数を1ずつ増加させたい場合は、『Step 1』は省略できます。

省略した場合、自動的に1,2,3,4といった感じで、変数は1ずつ増えます。

例えば、『For i = 1 to 10 Step 2』にすれば、『i』は1、3、5、7、911となり『11』でループを抜けます。

勘がいい人は、『Step – 〇』もできる?って、思ったかな?マイナスもできますよ👌

今回は、この辺にしようと思ったけど、物足りない人もいますよね?

ネスト(入れ子)とか挑戦します?

少しやってみて、ダメって人。スルーして大丈夫です。

今回は、繰り返し処理が何なのかってことなので😊

・九九を用意してみました🏫

Sub kuku()
Dim i, j As Integer
    For i = 1 To 9
        Debug.Print i & "の段"
        For j = 1 To 9
            Debug.Print i & "-" & j & "が" & i * j
        Next
    Next
End Sub

わかりました?

F8で実行していけば、『なんだ簡単じゃん』ってなると思います😊

 

 

それでは、またの✋