
当方、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件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
随分古い質問なので、本人はもう見ないかもしれないけど、同様の問題ではまっている人がいるかも知れないので、書いておきます。
構造体をCollectionに入れるのではなく、構造体をClassに変換して、そのClassをベースとした、Collectionを作成すれば、目的の内容は実現できるはずです。
No.1
- 回答日時:
こんにちは。
maruru01です。Collectionオブジェクトのヘルプには以下のように書かれています。
Collection オブジェクトの構成
Collection オブジェクトには、バリアント型 (Variant) で各トピックが格納されています。したがって、Collection オブジェクトに追加できる事柄の一覧は、バリアント型に格納できる事柄の一覧と同じです。これには、基本データ型、オブジェクト、および配列が含まれ、ユーザー定義の型は含まれません。
したがって、ユーザー定義の型(いわゆる構造体)は追加出来ないようです。
コレクションを使ってどうのような処理をしたいのか分かりませんが、だいたいは、配列で代用出来るのではないでしょうか。
では。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBA コレクションに2次元配列を追加して取り出す方法
Visual Basic(VBA)
-
構造体配列の特定のメンバーをFor~Eachで
Visual Basic(VBA)
-
VB6でユーザー定義型がNothingかどうか調べるには?
Visual Basic(VBA)
-
-
4
FriendとPublicの違い。。。
Visual Basic(VBA)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
VBA2005 16進を2桁で表示したい。
Visual Basic(VBA)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
エクセルVBAでのwitheventsについて
Visual Basic(VBA)
-
9
エクセル2013vbaで、見えない名前の定義の「_xlfn.IFERROR」を削除したい
Excel(エクセル)
-
10
VBで構造体の配列を関数に渡す方法?
Visual Basic(VBA)
-
11
ExcelVBA EnableプロパティがFalseの時に文字の色を変えたくない
Visual Basic(VBA)
-
12
VBA プロシージャの名前の取得
その他(Microsoft Office)
-
13
エクセルVBAでシートモジュールでのパブリック変数
Excel(エクセル)
-
14
Formの表示状態の取得
Visual Basic(VBA)
-
15
Excel VBAにて2つの処理を同時実行可能?
Visual Basic(VBA)
-
16
For ~ Next の中での Dim宣言について
Visual Basic(VBA)
-
17
日付の大小の表現
日本語
-
18
VBAでActiveDirectoryのユーザ一覧の取得の仕方
Visual Basic(VBA)
-
19
subの配列引数をoptionalで使う方法
Visual Basic(VBA)
-
20
どこにもフォーカスを当てたくない
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
A4用紙に穴あけパンチで二つ穴...
-
友達から貰ったグッズを持て余...
-
空き瓶コレクターの方に質問で...
-
保存用のグッズって何の為に使...
-
こちらの痛バッグは65mmの缶バ...
-
このグリーンオニキスが本物で...
-
成人済みの人がカバンにキャラ...
-
この硬貨は、どれくらいの価値...
-
日本の自動販売機で外国のコイ...
-
ダイハツ コペンのドライブレコ...
-
アニメグッズ 暴落 気のせい?
-
マンホールカードなんですが
-
頭が悪くて分からないので教え...
-
IC-R5を持っていますが、IC-R6...
-
アニメグッズ 4択 購入するなら...
-
モンドセレクション受賞 楽天3冠
-
今度大阪万博に行くんですけど...
-
今は既に推していない、見てい...
-
LDLコレステロール値
-
クラクション鳴らされた
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構造体をコレクションに入れて...
-
ガンダムフィギュア主にメタル...
-
ウエハースカードの使い道
-
コレクション性というのは、ど...
-
おすすめのコレクションケース...
-
趣味で女性用のアダルトグッズ...
-
ミントコレクション
-
コレクションする理由
-
映画のチラシのコレクション方法
-
部屋に何かコレクションを
-
1.5㎝×1.5㎝くらいの小さなケー...
-
自分がもし突然亡くなったら、...
-
VBSでのコレクション
-
五大コレクション~~~
-
ハイパーヨーヨーのケースにつ...
-
令和の今の時代にレーザーディ...
-
ヘリテージコレクション とは...
-
文房具をコレクションしてる方...
-
これが何のコインか分かる方い...
-
FFコレクションと攻略本
おすすめ情報