投稿日 | : 2006/11/28(Tue) 00:13 |
投稿者 | : PostCode |
Eメール | : |
URL | : |
タイトル | : Collection型について |
VB6.0のコレクション型についてお聞かせください。
私はVB6.0のCollectionはArrayListと同等と思っていたのですが、
Private col As Collection
Set col = New Collection
Private Sub Form_Load()
col.Add 1
col.Add 2
col.Add 3
End Sub
Private Sub Command1_Click()
Dim obj As Object
For Each obj In col
MsgBox CStr(obj)
Next
End Sub
上記コードにてフォーム上からコマンドボタンを押しても
エラー「オブジェクトがありません」と言われます。
VBなら自動でラッパークラスにして配列のように扱えると思ったのですが‥。
上記コードのエラー回避方法をお教えください。
また、Collectionに保持した値を変更するにはどうしたらいいのでしょうか?
例えば、
col.Item(2) = col.Item(2) + 1
※ colの2番目要素はAdd関数を用いてすでになんらかの値が入っているものとする。
上記のコードはエラーになります。
なので、現状では
col.Add col.Item(2) + 1, , 2
col.Remove 3
のように、もともとあった位置に変更した値を挿入し、
前の値は次にあるはずなのでそれを削除するようにしています。
なにかいい方法がありましたらご教示願います。