VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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

のように、もともとあった位置に変更した値を挿入し、
前の値は次にあるはずなのでそれを削除するようにしています。

なにかいい方法がありましたらご教示願います。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -