ループの後(その2)

その2は、For Each...Next ステートメントです。
こちらは、コレクションに対するループの場合は Nothing に、Variant配列に対するループの場合は Empty になります。
 
ループを抜けた後のことは、考えなくていいよってことです。
↑その1と言っていることが逆 (-_-;)
 
って、これだけじゃ寂しいので、一応、テスト用コードも書いておきます。

Sub Macro1()
  Dim i As Range

  For Each i In Range("A1:A3")
    Debug.Print i.Address
  Next i
  Debug.Print TypeName(i), "ループ後"
End Sub

Sub Macro2()
  Dim i As Variant

  For Each i In Array(1, 2, 3)
    Debug.Print i
  Next i
  Debug.Print TypeName(i), "ループ後"
End Sub

たまにループの後で Nothing をセットしているコードを見かけますが、無駄なものを書いているなぁという印象を受けます。
 
※.Excel World の 2007年3月29日 01:39 の日記をコピーしています。
http://excel.sns.fc2.com/excel/