初回だけは初期化されているので誤魔化されてしまうため、余計に注意が必要です。
Dim i As Integer
For i = 1 To 5
' 繰り返し処理内で変数定義
Dim Value1 As String ' 初期化されない!
Dim Value2 As Integer ' 初期化されない!
If i Mod 2 = 0 Then
' 偶数
Value1 = CStr(i)
Value2 = i
End If
Debug.Print i & "回目" & vbTab & Value2 & vbTab & Value2
Next
<処理結果>
1回目 0 0 ← 初期化されている
2回目 2 2
3回目 2 2 ← 初期化されていない!
4回目 4 4
5回目 4 4 ← 初期化されていない!