VBAの For Nextループ では、ループ内で変数を使うことで、データの集計や処理を柔軟に行うことができます。
ここでは ループ内の変数の使い方 について解説します。
目次
1. ループカウンタ(制御変数)の基本
For Next
ループでは カウンタ変数 を使用します。
For i = 1 To 5
Debug.Print "現在の値:" & i
Next i
✅ ポイント:
i
は ループのたびに1ずつ増加(デフォルト)Step
を指定すると増減幅を変更可能
2. ループ内での変数の活用
(1) 合計を計算する
ループを使って 変数に値を蓄積 することで、合計値を求めることができます。
Dim i As Integer, total As Integer
total = 0
For i = 1 To 5
total = total + i
Next i
Debug.Print "合計:" & total '出力: 15 (1+2+3+4+5)
✅ ポイント:
total
はループごとにi
の値を加算- ループ後に合計値を出力
(2) 配列に値を格納する
ループを使って 配列に値を代入 することも可能です。
Dim i As Integer, numbers(5) As Integer
For i = 1 To 5
numbers(i) = i * 10 '配列に値を格納
Next i
Debug.Print numbers(3) '出力: 30
✅ ポイント:
numbers(i)
にi × 10
を格納numbers(3)
の値は30
になる
(3) 文字列を連結する
ループを使って 文字列を連結 することも可能です。
Dim i As Integer, result As String
result = ""
For i = 1 To 5
result = result & "No." & i & " "
Next i
Debug.Print result '出力: "No.1 No.2 No.3 No.4 No.5 "
✅ ポイント:
result
に"No.1 No.2 ..."
と追加していく
(4) 条件による分岐と変数の変更
If
文を使って、特定の条件を満たした場合に 変数の値を変更 できます。
Dim i As Integer, countEven As Integer
countEven = 0
For i = 1 To 10
If i Mod 2 = 0 Then
countEven = countEven + 1 '偶数をカウント
End If
Next i
Debug.Print "偶数の数:" & countEven '出力: 5
✅ ポイント:
i Mod 2 = 0
で偶数を判定countEven
に偶数の数をカウント
3. ループ内の変数のスコープ
変数のスコープ(有効範囲) に注意しましょう。
(1) ループ内で宣言された変数
For i = 1 To 3
Dim temp As Integer 'ループごとに初期化される
temp = i * 2
Debug.Print temp
Next i
出力結果:
2
4
6
✅ ポイント:
Dim temp As Integer
はループ内で 毎回初期化される- ループ外では参照できない
(2) ループ外で宣言した変数
Dim temp As Integer
For i = 1 To 3
temp = temp + i
Next i
Debug.Print temp '出力: 6 (1+2+3)
✅ ポイント:
temp
は ループが終わっても値を保持- ループ内で変数を 累積する 場合は ループ外で宣言する
4. まとめ
やりたいこと | 方法 |
---|---|
ループ内で合計を計算 | total = total + i |
配列に値を格納 | array(i) = 値 |
文字列を連結 | str = str & "追加文字" |
条件を満たした場合にカウント | If 条件 Then count = count + 1 |
ループごとに変数を初期化 | ループ内でDimを宣言 |
ループ後も値を保持 | ループ外でDimを宣言 |
ループ内の変数を適切に使うことで、効率的なコードを書こう!
コメント