collection, for loop,「インデックスが有効範囲にありません」

解決


poorgrammer  2014-05-19 11:34:33  No: 103479  IP: [192.*.*.*]

次のプログラムで①に代えて、②にすると「インデックスが有効範囲にありません」というエラーになります。

何故か、ご教示ください。宜しくお願いします
(どんでも質問でないよう願って)

Private Sub Ddebug2()

    Dim Colles As New Collection
    Dim Mem As String
        
        Colles.Add "AAA"
        Colles.Add "BBB"
        Colles.Add "CCC"
        
' ① 正常に実行終了
'
        For i = Colles.Count To 1 Step -1
            Mem = Colles.Item(i)
            Debug.Print Mem
            Colles.Remove i
        Next
'---------------------------------------------
' ② コレクションのメソッドで「インデックスが有効範囲にありません」
'とのエラー・メッセージが…。
'
        For i = 1 To Colles.Count
            Mem = Colles.Item(i)
            Debug.Print Mem
            Colles.Remove i
        Next

End Sub

編集 削除
ptigrammer  2014-05-19 14:12:06  No: 103480  IP: [192.*.*.*]

removeするごとに、コレクションののcountが減るためですね。

分かりました。ありがとうございました。

編集 削除