VBAのFor Nextループ内での変数の扱い

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を宣言

ループ内の変数を適切に使うことで、効率的なコードを書こう!

コメント

タイトルとURLをコピーしました