VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
Update 2018/11/18
< Prev Tips
Next Tips>
VBAで繰り返し処理を行う方法は複数あります。
ここでは、以下について説明します。
For〜Next文は、繰り返し回数がわかっている場合に使用します。
書式を以下に示します。[]は省略できることを意味します。
For 繰り返しの初期値 To 繰り返しの終了値 [Step 繰り返しごとの増減値] 実行する処理 Next
以下は For〜Next文 の例です
変数 iが1〜5までの間(つまり5回)繰り返し処理を行います。
Option Explicit
Sub ForNext文の例1()
Dim i As Integer
For i = 1 To 5
Debug.Print "繰り返し" + CStr(i) + "回目"
Next
End Sub
もう1つ例を示します。
変数 iが1〜10までの間繰り返しますが、「Step 2」としていますので、繰り返すごとに変数iの値は2ずつ増えていきます。
よって変数iは1,3,5,7,9と変化しますので5回繰り返し処理を行います。
Option Explicit
Sub ForNext文の例2()
Dim i As Integer
For i = 1 To 10 Step 2
Debug.Print "繰り返し" + CStr(i) + "回目"
Next
End Sub
For〜Each文は、配列やコレクションといった、値のかたまりから1つずつ値を取り出して、なくなるまで処理を繰り返します。
書式を以下に示します。
書式を取り出した値を入れる変数はVariant型にする必要があるので注意してください。
For Each 取り出した値を入れる変数 In 配列(またはコレクション) 繰り返し処理 Next
以下は、配列 data から値を1つずつ取り出して、なくなるまで繰り返し処理を行う例です。
Option Explicit
Sub ForEach文の例()
Dim data(4) As String
Dim x As Variant
data(0) = "A"
data(1) = "B"
data(2) = "C"
data(3) = "D"
data(4) = "E"
For Each x In data
Debug.Print x
Next
End Sub
For〜NextやFor Each文は、「Exit For」を使用すると、繰り返しの途中でループ処理をやめて抜け出すことができます。
以下は、For〜Next文で5回の繰り返し処理をしますが、変数iが2のときにループを脱出します。
Option Explicit
Sub ExitForの例()
Dim i As Integer
For i = 1 To 5
Debug.Print i
If i = 2 Then
Exit For ' iが2のときにループを脱出
End If
Next
End Sub