プロが教える店舗&オフィスのセキュリティ対策術

当方、Windows2000(SP2) + VB6.0(SP5) の環境です。

今、私が困っている事なのですが、宣言した構造体に入れた値を、
構造体ごとコレクションに追加して扱いたいと言う所なのです。
しかし最初の「構造体をコレクションに追加する」と言う時点で躓いています。
もしかして、構造体ごとコレクションに登録すると言う事は出来ないのでしょうか?
私が考えて書いたコードは以下のようになっております。



--- 標準モジュールにて構造体を宣言 ---

Public gcolAddData As New Collection 'Collectionオブジェクト

Public Type AddData '各データをレコードで獲得
varName As Variant
varPostCd As Variant
varAddress As Variant
varTellNum As Variant
End Type

Public gAddData As AddData



--- 以下が実際に走っているソースです ---


'構造体に取得する
With gAddData

--- ここで構造体の各変数に値を入れています ---

End With


'構造体をコレクションに格納
gcolAddData.Add gAddData



普通にAddしてしまう方法なのですが、これでは駄目なのでしょうか。
方法があるのであれば教えて頂けると嬉しいです。

また、これは念の為の確認としてお聞きしたいのですが、
コレクションに追加した構造体を受け取りたい時は
以下のようにSet文で構わないですよね?


Dim tmpAddData As gcolAddData

Set tmpAddData = gcolAddData.Item(0)


何分、まだこの段階まで進めていない状態ですので……(汗
どうぞよろしくお願いします。

A 回答 (2件)

随分古い質問なので、本人はもう見ないかもしれないけど、同様の問題ではまっている人がいるかも知れないので、書いておきます。



構造体をCollectionに入れるのではなく、構造体をClassに変換して、そのClassをベースとした、Collectionを作成すれば、目的の内容は実現できるはずです。
    • good
    • 4

こんにちは。

maruru01です。

Collectionオブジェクトのヘルプには以下のように書かれています。

Collection オブジェクトの構成
Collection オブジェクトには、バリアント型 (Variant) で各トピックが格納されています。したがって、Collection オブジェクトに追加できる事柄の一覧は、バリアント型に格納できる事柄の一覧と同じです。これには、基本データ型、オブジェクト、および配列が含まれ、ユーザー定義の型は含まれません。

したがって、ユーザー定義の型(いわゆる構造体)は追加出来ないようです。
コレクションを使ってどうのような処理をしたいのか分かりませんが、だいたいは、配列で代用出来るのではないでしょうか。
では。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング